jstl的使用

本文详细介绍了JSTL(Java Standard Tag Library)与EL(Expression Language)在JSP页面中的配合使用方法,包括如何导入JSTL库,使用通用标签如set、out、remove,条件标签if、choose,以及迭代标签forEach。同时,文章还展示了fmt标签库在格式化日期和数字中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次讲了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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值