后台学习四---el语言及jstl表达式
2017-04-06 10:53
411 查看
具体知识自行百度,我这里就讲我自己用的比较多的几种。
我们使用el语言及jstl表达式来进行后端渲染,在页面上动态生成数据
逻辑型 :and、&& ; or、|| ; !、not
关系型 :==、eq;!=、ne;gt、>;lt ,<;le ,<= ; >=、ge。 可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文 字进行比较。
空 :empty。空操作符是前缀操作,可用于确定值是否为空。空字符串,null都可以用empty表示
条件型 :A ?B :C。根据 A 赋值的结果来赋值 B 或 C。
两种写法,
如果后台传过来的是user的集合,怎么输出第一个的id呢?
两种写法,
3.1
语法格式是
test属性用于存放判断的条件,一般使用EL表达式来编写。
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
3.2
语法跟
test属性用于存放判断的条件,一般使用EL表达式来编写。
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
其他情况会显示不知道性别
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
举个例子,后台传过来
使用这个标签,要在jsp的开头加上
如下是它的格式:
先记住(眼熟)如下
这些是
显示结果:
真是一长串。。反正我用的时候习惯这样子,好记又好用
好了,jstl还有很多标签,我就不一一列举了,以上的,是我自己比较常用的标签
接着,我就写一个查询全部的例子:
sql xml:
Controller:
jsp显示:
that’s all,如果我有哪里说得不好或者有问题的地方,欢迎指出来,大家共同进步~
欢迎加入–qq群–JAVA后台学习交流群:486055993
我们使用el语言及jstl表达式来进行后端渲染,在页面上动态生成数据
1. EL 操作符
算术型 :+、-(二元)、*、/、div、%、mod、-(一元)逻辑型 :and、&& ; or、|| ; !、not
关系型 :==、eq;!=、ne;gt、>;lt ,<;le ,<= ; >=、ge。 可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文 字进行比较。
空 :empty。空操作符是前缀操作,可用于确定值是否为空。空字符串,null都可以用empty表示
条件型 :A ?B :C。根据 A 赋值的结果来赋值 B 或 C。
2. 简单显示
比如说我们从后台传过来这样一个叫user的model,然后他有id,name等属性, 我们怎么在页面上显示他的id呢?两种写法,
${user.id}或者
${user["id"]}
如果后台传过来的是user的集合,怎么输出第一个的id呢?
两种写法,
${list[0].id}或者
${list[0]["id"]
3. 判断
有时候我们需要进行判断来输出不同的内容,比如说,user有个sex属性,它在数据库里存的值是0和1,用0表示男,1表示女,那怎么显示呢?
3.1 c:if
标签
语法格式是<c:if test="条件" var="name">
test属性用于存放判断的条件,一般使用EL表达式来编写。
<c:if test="${user.sex eq 0}" > 男 </c:if> <c:if test="${user.sex eq 1}" > 女 </c:if>
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
3.2 c:choose
和c:when
标签
语法跟<c:if>相近,就是多了个
<c:otherwise>用来对应其他情况,就相当于
if else的
else
test属性用于存放判断的条件,一般使用EL表达式来编写。
<c:choose> <c:when test="${one.sex eq 0}"> 男 </c:when> <c:when test="${one.sex eq 1}"> 女 </c:when> <c:otherwise> 不知道性别 </c:otherwise> </c:choose>
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
其他情况会显示不知道性别
3.3 el语言-问号表达式
语法格式是${A?B:C},如果A为true则显示B的内容,如果A表达式结果为false,则显示C的内容
${user.sex eq 0 ?'男':'女'}
如果user的sex是0,那么就会在页面上显示男
如果user的sex是1,那么就会在页面上显示女
4. 循环
<c:forEach var="name" items="Collection" varStatus="StatusName" begin="begin" end="end" step="step"> 【循环标签属性说明】: 名称 是否必须 默认值 解释 var 是 无 循环里使用的变量名 items 是 无 后台传过来的集合/数组名 begin 否 0 循环开始的index end 否 集合中最后一个元素 循环结束的index step 否 1 步长,循环每次增加的个数 varStatus 否 无 状态信息 【其中varStatus有4个状态属性】 属性名 类型 说明 index int 当前循环的索引值 count int 循环的次数 frist boolean 是否为第一个位置 last boolean 是否为第二个位置
举个例子,后台传过来
users这个
model,他是user的集合,那么怎么在页面上显示呢?
<table> <tr> <td>序号</td> <td>id</td> <td>name</td> </tr> <c:forEach items="${users}" var="one" varStatus="num" > <tr> <td>${num.count}</td> <td> ${one.id}</td> <td>${one.name}</td> </tr> </c:forEach> </table>
5. 时间格式化
<fmt:formatDate>标签:该标签主要用来格式化日期和时间。
使用这个标签,要在jsp的开头加上
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
如下是它的格式:
<fmt:formatDate value="value" type="type" pattern="pattern" dateStyle="dateStyle"/>
先记住(眼熟)如下
pattern格式(反正我没记住。。有特殊需求的时候,我都是百度看看的):
d 月中的某一天。一位数的日期没有前导零。 dd 月中的某一天。一位数的日期有一个前导零。 ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。 dddd 周中某天的完整名称,在 DayNames 中定义。 M 月份数字。一位数的月份没有前导零。 MM 月份数字。一位数的月份有一个前导零。 MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。 MMMM 月份的完整名称,在 MonthNames 中定义。 y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。 yyyy 包括纪元的四位数的年份。 gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。 h 12 小时制的小时。一位数的小时数没有前导零。从1到12,分上下午 范围:01:00 AM~12:59AM hh 12 小时制的小时。一位数的小时数有前导零。 H 24 小时制的小时。一位数的小时数没有前导零。从0到23,范围:00:00 AM~23:59AM HH 24 小时制的小时。一位数的小时数有前导零。 m 分钟。一位数的分钟数没有前导零。 mm 分钟。一位数的分钟数有一个前导零。 s 秒。一位数的秒数没有前导零。 ss 秒。一位数的秒数有一个前导零。
这些是
type:
{type:both} <fmt:formatDate value="<%=new Date() %>" type="both"/> <!-- 2011-3-30 9:41:21 --> {type:date} <fmt:formatDate value="<%=new Date() %>" type="date"/> <!-- 2011-3-30 --> {type:time} <fmt:formatDate value="<%=new Date() %>" type="time"/> <!-- 9:44:44 --> {type:date, dateStyle:default} <fmt:formatDate value="<%=new Date() %>" type="date" dateStyle="default"/> <!-- 2011-3-30 --> {type:date, dateStyle:short} <fmt:formatDate value="<%=new Date() %>" type="date" dateStyle="short"/> <!-- 11-3-30 --> {type:date, dateStyle:medium} <fmt:formatDate value="<%=new Date() %>" type="date" dateStyle="medium"/> <!-- 2011-3-30 --> {type:date, dateStyle:long} <fmt:formatDate value="<%=new Date() %>" type="date" dateStyle="long"/> <!-- 2011年3月30日 --> {type:date, dateStyle:full} <fmt:formatDate value="<%=new Date() %>" type="date" dateStyle="full"/> <!-- 2011年3月30日 星期三 --> {type:time, timeStyle:default} <fmt:formatDate value="<%=new Date() %>" type="time" timeStyle="default"/> <!-- 10:01:32 --> {type:time, timeStyle:short} <fmt:formatDate value="<%=new Date() %>" type="time" timeStyle="short"/> <!-- 上午10:01 --> {type:time, timeStyle:medium} <fmt:formatDate value="<%=new Date() %>" type="time" timeStyle="medium"/> <!-- 10:01:32 --> {type:time, timeStyle:long} <fmt:formatDate value="<%=new Date() %>" type="time" timeStyle="long"/> <!-- 上午10时01分32秒 --> {type:time, timeStyle:full} <fmt:formatDate value="<%=new Date() %>" type="time" timeStyle="full"/> <!-- 上午10时01分32秒 CST --> {type:both, pattern:EEEE, MMMM d, yyyy HH:mm:ss Z} <fmt:formatDate value="<%=new Date() %>" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/> <!-- 星期三, 三月 30, 2011 10:01:32 +0800 --> {type:both, pattern:d MMM yy, h:m:s a zzzz} <fmt:formatDate value="<%=new Date() %>" type="both" pattern="d MMM yy, h:m:s a zzzz"/> <!-- 30 三月 11, 10:1:32 上午 中国标准时间 --> {pattern:dd/MM/yyyy HH:mm aa}} <fmt:formatDate value="<%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2011-3-30 13:12:12") %>" pattern="dd/MM/yyyy HH:mm aa"/> <!-- 30/03/2011 13:12 下午 --> {pattern:dd/MM/yyyy hh:mm aa} <fmt:formatDate value="<%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2011-3-30 13:12:12") %>" pattern="dd/MM/yyyy hh:mm aa"/> <!-- 30/03/2011 01:12 下午 -->
显示结果:
{type:both} 2011-3-30 10:07:42 {type:date} 2011-3-30 {type:time} 10:07:42 {type:date, dateStyle:default} 2011-3-30 {type:date, dateStyle:short} 11-3-30 {type:date, dateStyle:medium} 2011-3-30 {type:date, dateStyle:long} 2011年3月30日 {type:date, dateStyle:full} 2011年3月30日 星期三 {type:time, timeStyle:default} 10:07:42 {type:time, timeStyle:short} 上午10:07 {type:time, timeStyle:medium} 10:07:42 {type:time, timeStyle:long} 上午10时07分42秒 {type:time, timeStyle:full} 上午10时07分42秒 CST {type:both, pattern:EEEE, MMMM d, yyyy HH:mm:ss Z} 星期三, 三月 30, 2011 10:07:42 +0800 {type:both, pattern:d MMM yy, h:m:s a zzzz} 30 三月 11, 10:7:42 上午 中国标准时间 {pattern:dd/MM/yyyy HH:mm aa} 30/03/2011 13:12 下午 {pattern:dd/MM/yyyy hh:mm aa} 30/03/2011 01:12 下午
真是一长串。。反正我用的时候习惯这样子,好记又好用
<fmt:formatDate value='${one.createtime}' type="both"/> 2017-3-29 11:12:27
好了,jstl还有很多标签,我就不一一列举了,以上的,是我自己比较常用的标签
接着,我就写一个查询全部的例子:
sql xml:
<select id="selectAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from user </select>
Controller:
//获得所有user @RequestMapping(value = "/lxf/test3/getAll", method = RequestMethod.GET) public String getAll( Model model) { model.addAttribute("list",userService.selectAll()); return "lxf/userList"; }
jsp显示:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <%-- Created by IntelliJ IDEA. User: 11655 Date: 2017/4/11 Time: 15:15 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <style> .table-b td { border: 1px solid black } </style> <body> <table class="table-b"> <tr> <td>序号</td> <td>ID</td> <td>姓名</td> <td>性别</td> <td>生成时间</td> </tr> <c:choose> <c:when test="${empty list}"> 没有数据! </c:when> <c:otherwise> <c:forEach items="${list}" var="one" varStatus="num" > <tr> <td>${num.count}</td> <td>${one.id}</td> <td>${one.name}</td> <td> ${one.sex eq 0 ?'男':'女'} <%--<c:if test="${one.sex eq 0}" >--%> <%--男--%> <%--</c:if>--%> <%--<c:if test="${one.sex eq 1}">--%> <%--女--%> <%--</c:if>--%> <%--<c:choose>--%> <%--<c:when test="${one.sex eq 0}">--%> <%--男--%> <%--</c:when>--%> <%--<c:when test="${one.sex eq 1}">--%> <%--女--%> <%--</c:when>--%> <%--<c:otherwise>--%> <%--不知道性别--%> <%--</c:otherwise>--%> <%--</c:choose>--%> </td> <td><fmt:formatDate value='${one.createtime}' type="both"/></td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> </body> </html>
that’s all,如果我有哪里说得不好或者有问题的地方,欢迎指出来,大家共同进步~
欢迎加入–qq群–JAVA后台学习交流群:486055993
相关文章推荐
- 【学习】JSP 2 特性:表达式语言(EL)
- JSTL 表达式与 EL 语言
- JSTL 表达式与 EL 语言
- EL语言 与 JSTL表达式
- EL和JSTL表达式语言
- JSTL:表达式语言(学习资料)
- EL表达式 学习笔记(JSTL)
- Spring MVC 学习指南---第八章 表达式语言(EL)
- JSP 2.1-2.5上用JSTL和EL(表达式语言)的问题
- EL&JSTL表达式语言使用
- EL&JSTL表达式学习笔记 -- day01
- JSTL 表达式与 EL 语言
- JSTL 表达式与 EL 语言
- JSTL(标准标签库语言)和EL(表达式语言)的使用简述
- JSTL 入门: 表达式语言 ------通过避免使用脚本编制元素来简化对 JSP 应用程序的软件维护
- 表达式语言(EL)和OGNL
- EL(表达式语言)
- JSTL 1.0入门: 表达式语言
- JSP学习笔记--EL和JSTL
- EL表达式语言的基础总结