上次讲了el表达式,这次就提一下jstl,这两个在jsp页面中配合使用
1.2以下 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
将jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 导入
jsp指令
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
现在最新是1.25 http://tomcat.apache.org/download-taglibs.cgi
下载页面有4个jar包:
Impl: taglibs-standard-impl-1.2.5.jar JSTL实现类库
Spec: taglibs-standard-spec-1.2.5.jar JSTL标准接口
EL: taglibs-standard-jstlel-1.2.5.jar JSTL1.0标签-EL相关
Compat: taglibs-standard-compat-1.2.5.jar 兼容版本
从README得知:
如果不使用JSTL1.0标签,可以忽略taglibs-standard-jstlel包,
README没有介绍taglibs-standard-compat包,估计应该是兼容以前版本标签库,
所以一般只需要 taglibs-standard-impl 和 taglibs-standard-spec 两个jar包
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
通用标签
set out remove
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>通用标签</title>
</head>
<body>
<!-- 需要注意的是jstl标签需要使用<%-- --%>进行注释 -->
<!-- set是往指定的域中存放数据 默认page-->
<c:set var="namerequest" value="------namerequest" scope="request"></c:set>
<c:set var="namepage" value="------namepage" scope="page"></c:set>
<c:set var="nameapplication" value="------nameapplication" scope="application"></c:set>
<c:set var="namesession" value="------namesession" scope="session"></c:set>
<!-- remove删除指定域的数据 -->
<c:remove var="namesession" scope="session"/>
session:<c:out value="${namesession }"></c:out><hr/>
<c:remove var="namepage" scope="page"/>
page:<c:out value="${namepage }"></c:out><hr/>
<c:remove var="namerequest" scope="request"/>
request:<c:out value="${namerequest }"></c:out><hr/>
<%--<c:remove var="nameapplication" scope="application"/>--%>
application:<c:out value="${nameapplication }"></c:out><hr/>
</body>
</html>
条件标签
if choose
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>条件标签</title>
</head>
<body>
<c:set var="name" value="niyulu"></c:set>
<c:if test="${name == 'niyulu'}">
你的名字为------niyulu
</c:if><hr/>
<c:choose>
<c:when test="${name == 'niyulu'}">你的名字是------niyulu</c:when>
<c:otherwise>你的名字不是------niyulu</c:otherwise>
</c:choose>
</body>
</html>
迭代标签
forEach
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "niyulu");
map1.put("age", 21);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "luyuni");
map2.put("age", 22);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "luyunini");
map3.put("age", 23);
List<Map<String, Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
pageContext.setAttribute("maps", list);
%>
<c:forEach var="map" items="${maps }">
${map.name }<br/>
${map.age }<br/>
</c:forEach>
</body>
</html>
fmt标签库
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
格式化日期 <br/>
<fmt:formatDate
value="<%=new Date()%>"
pattern="yyyy/MM/dd hh:mm:ss" var="date" scope="request" />
${date}
<hr/>
格式化数字 <br/>
<fmt:formatNumber value="3.1415926" pattern="0000.00000000000" var="num1" scope="request" />
<fmt:formatNumber value="3.1415926" pattern="####.###########" var="num2" scope="request" />
${requestScope.num1}<br/>
${requestScope.num2}<br/>
</body>
</html>