JSTL
文章目录
Tips
-
JSP Standard Tag Library,JSP 标准标签库
是一个不断完善的开放源代码的 JSP 标签库
-
EL 表达式主要是为了替换 jsp 中的表达式脚本
标签库则是为了替换代码脚本,使得整个 jsp 页面更加简洁
标签库
相关jar包
-
taglibs-standard-impl-1.2.1.jar
-
taglibs-standard-spec-1.2.1.jar
五大标签库
有些情况下,会发现 uri 中没有提示,此时只需要将standard.jar/meta-inf/c.tld文件放到 WEB-INF下
功能范围 | taglib 引入标签库 | 前缀 |
---|---|---|
核心标签库 | <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> | c |
格式化 | <%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %> | fmt |
函数 | <%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” % | fn |
数据库(不使用) | <%@ taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql” %> | sql |
XML(不使用) | <%@ taglib prefix=“x” uri=“http://java.sun.com/jsp/jstl/xml” %> | x |
core
<c:set />(使用很少)
set 标签可以往域中保存数据
<c:set scope="session" var="abc" value="abcValue"/>
${ sessionScope.abc }
<c:if />
<c:if test="${ 12 == 12 }">
<h1>12 等于 12</h1>
</c:if>
<c:choose> <c:when> <c:otherwise>
- 标签里不能使用 html 注释,要使用 jsp 注释
- when 标签的父标签一定要是 choose 标签
<%
request.setAttribute("height", 180);
%>
<c:choose>
<%--jsp 注释** --%>
<c:when test="${ requestScope.height > 190 }">
<h2>小巨人</h2>
</c:when>
<c:when test="${ requestScope.height > 180 }">
<h2>很高</h2>
</c:when>
<c:when test="${ requestScope.height > 170 }">
<h2>还可以</h2>
</c:when>
<c:otherwise>
<h2>emm</h2>
</c:otherwise>
</c:choose>
<c:forEach />
- 数字范围
<c:forEach begin="1" end="10" var="i">
第${i}行
</c:forEach
- 遍历 Object 数组
<%
request.setAttribute("arr", new String[{"123","AAA","!!!"});
%>
<c:forEach items="${ requestScope.arr }" var="item">
${ item } <br>
</c:forEach
- 遍历 Map 集合
<%
Map<String,Object> map = new HashMap<String, Object>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
request.setAttribute("map", map);
%>
<c:forEach items="${ requestScope.map }" var="entry">
<h1>${entry.key} = ${entry.value}</h1>
</c:forEach>
- 遍历 List 集合
<c:forEach begin="2" end="7" step="2" varStatus="status" items="${requestScope.stus}" var="stu">
<tr>
<td>${stu.id}</td>
<td>${stu.username}</td>
<td>${stu.password}</td>
<td>${stu.age}</td>
<td>${stu.phone}</td>
<td>${status.step}</td>
</tr>
</c:forEach
fmt
${date}
<fmt:formatDate value="${date}" ></fmt:formatDate>
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd"></fmt:formatDate>
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>