JSTL详解(常⽤标签以及c:forEach遍历集合)
JSTL标签
参考⽂章:blog.csdn/qq_25827845/article/details/53311722
# 学习总结
⼀、 JSTL的简介
1. 什么是JSTL
JSTL 是 JSP 标准标签库,利⽤标签库的标签可以取代 JSP 页⾯上的 Java 代码,为页⾯设计⼈员和后台开发⼈员的分⼯协作提供了便利。
2. JSTL常⽤标签库
标签库名URI字符串作⽤前缀
核⼼标签库<%@ taglib prefix=“c” uri=“java.sun/jsp/jstl/core” %>⽤于页⾯逻辑控制
如:if、forEach
c
格式化标签库<%@ taglib prefix=“fmt” uri=“java.sun/jsp/jstl/fmt” %>
⽤于执⾏格式操作
如:格式化⽇期字符串
fmt
3. JSTL使⽤步骤
1)、导⼊ jstl-1.2.jar 包,每个标签底层其实都是⽤ Java 代码实现的,复制 jar 包到 web/WEB-INF/lib ⽬录结构下;2)、创建 JSP 页⾯,使⽤ taglib 的指令引⽤标签库
<%@ taglib prefix="c" uri="java.sun/jsp/jstl/core" %>
3)、接下来就可以使⽤标签库定义好的标签了,例如:<c:if>
⼆、核⼼标签库常⽤标签
1. c: set 标签
标签名使⽤
<c:out value=“xxx”/>输出 xxx
<c:out value="${age}"/>输出EL表达式 ${age} 获取的内容
<c:out value=”${age}” default=”xxx”/>输出EL表达式 ${age} 获取的内容,当EL表达式内容不存在时输出 default 的内容2. c: out 标签
标签名使⽤
<c:set var=“a” value=“xxx”/>在pageContext中添加name为a,value为xxx的数据<c:set var=”a” value=”xxx” scope=”session”/>在session中添加name为a,value为xxx的数据
3. c: if 标签
属性名是否⽀持EL属性类型属性描述
test⽀持,必须是EL boolean EL 中条件为真则执⾏标签体内容注意:没有对应 else 标签
代码案例:
<c:set var="a" value="hello"/>
<c:if test="${not empty a }">
<c:out value="${a }"/>
</c:if>
4. c: choose 标签
作⽤:⽤于多分⽀判断(多条件判断)
标签名作⽤
chaoose类似于 Java 中的 switch,choose只是⼀个容器,包含下⾯两个元素
when可以出现多个
⽤于每个判断条件,类似于 switch 中 case。有⼀个 test 属性,与 if 功能相同otherwise如果上⾯所有条件都不满⾜,执⾏ otherwise 内容。类似于 switch 中 default
⽰例代码:
<c:set var="score" value="${param.score }"/>
<c:choose>
<c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when>
<c:when test="${score >= 90 }">A级</c:when>
<c:when test="${score >= 80 }">B级</c:when>
<c:when test="${score >= 70 }">C级</c:when>
<c:when test="${score >= 60 }">D级</c:when>
<c:otherwise>E级</c:otherwise>
</c:choose>
5. c: forEach 标签
作⽤:⽤于遍历集合或数组
属性名是否⽀持EL属性类型属性描述
item true数组或集合使⽤ EL 表达式,代表集合或数组
var false String var 的变量名代表集合或数组中的每⼀个元素varStatus false String代表每个元素的状态对象,⼀共有4个属性,属性的含义见下表varStatus 属性
属性名数据类型含义
index int当前遍历到的这个元素索引,从 0 开始
count int遍历⼀次加 1,从 1 开始
first boolean如果当前遍历的是第1 个元素,则返回 true
last boolean如果当前遍历的是最后 1 个元素,则返回 true
集合遍历
1)遍历数组
<%
String[] names = {"zhangSan", "liSi", "wangWu", "zhaoLiu"};
pageContext.setAttribute("ns", names);
%>
<c:forEach var="item" items="${ns }">
<c:out value="name: ${item }"/><br/>
</c:forEach>
2)遍历 List
<%
List<String> names = new ArrayList<String>();
names.add("zhangSan");
names.add("liSi");
names.add("wangWu");
names.add("zhaoLiu");
pageContext.setAttribute("ns", names);jstl常用标签有哪些
%>
<c:forEach var="item" items="${ns }">
<c:out value="name: ${item }"/><br/>
</c:forEach>
3)遍历 Map
<%
Map<String,String> stu = new LinkedHashMap<String,String>(); stu.put("number", "N_1001");
stu.put("name", "zhangSan");
stu.put("age", "23");
stu.put("sex", "male");
pageContext.setAttribute("stu", stu);
%>
<c:forEach var="item" items="${stu }">
<c:out value="${item.key }: ${item.value }"/><br/>
</c:forEach>
4)遍历 varStatus 属性
<c:forEach var="item" items="${ns }" varStatus="vs">
<c:if test="${vs.first }">第⼀⾏:</c:if>
<c:if test="${vs.last }">最后⼀⾏:</c:if>
<c:out value="第${vs.count }⾏: "/>
<c:out value="[${vs.index }]: "/>
<c:out value="name: ${vs.current }"/><br/>
</c:forEach>
三、格式化标签库常⽤标签
1. fmt: formatDate 标签
作⽤:⽤于对⽇期进⾏格式化
属性名属性类型属性描述
value Date要格式化的⽇期对象
pattern String指定⽇期格式
1)格式化时间
<%@ taglib prefix="fmt" uri="java.sun/jsp/jstl/fmt" %> ......
<%
Date date = new Date();
pageContext.setAttribute("d", date);
%>
<fmt:formatDate value="${d }" pattern="yyyy-MM-dd HH:mm:ss"/> 2. fmt: formatNumber 标签
作⽤:⽤于对数字进⾏格式化
属性名属性类型属性描述
value数字要格式化的数字对象
pattern String指定数字格式
1)格式化数字
<%
double d1 = 3.5;
double d2 = 4.4;
pageContext.setAttribute("d1", d1);
pageContext.setAttribute("d2", d2);
%>
<fmt:formatNumber value="${d1 }" pattern="0.00"/><br/>
<fmt:formatNumber value="${d2 }" pattern="#.##"/>
总结
以上就是对 JSTL 表达式取值的详细介绍了,代码仅供参考,欢迎讨论交流。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论