JavaWeb笔记28-JSTL

本文详细介绍JSTL(JavaServer Pages Standard Tag Library)的功能与使用方法,包括如何通过JSTL进行赋值、显示、删除操作,以及如何实现选择和迭代等逻辑控制。

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

JSTL
比EL的功能更强大
需要引入两个jar包
1、jstl.jar
2、standard.jar
引入tablib

<!-- taglib引入库,prefix添加前缀 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

核心标签库:通用标签库、条件标签库、迭代标签库

通用标签库

<指定前缀(prefix):set>:赋值
有以下作用:
i、在某个作用域(4个范围对象)中给变量赋值

<%
	//	request.setAttribute("name", "ZhangSan");  这句java代码和下面jstl代码起到的作用完全一致
	%>
	<c:set var="name" value="ZhangSan" scope="request"/>
	<!--   变量名      变量值           作用域 -->
	${requestScope.name}

ii、在某个作用域之中(4个范围对象),给某个对象的属性赋值

	<c:set target="${requestScope.student}" property="sname" value="zxs"/><br>
	<!--   目标修改对象                     要修改的变量      修改值    -->
	<!-- 注意:对象赋值无需规定范围,因为范围在设置目标对象时已经确定了 -->

此种方法可以给普通对象赋值,也可以给Map对象赋值

	<c:set target="${requestScope.map}" property="cn" value="中华人民共和国"/>

注意可以给不存在的值赋值,但是不能给不存在的对象赋值

<指定前缀(prefix):out>:显示
JSTL的显示功能比EL(${ })要强大之处在于:
c:out在显示不存在的数据时,会自动调用自定义的默认值

	传统EL:${requestScope.student.sname}<br>
	cout方式:<c:out value="${requestScope.student.sname}"/><br>
	c:out显示不存在的数据:<c:out value="${requestScope.s }" default="不存在"/><br>

此外,c:out还有一个escape属性,当value属性值为超链接时,escape=true,显示超链接,escape为false,只显示字段

	escapeXml=true:<c:out value='<a href="http://baidu.com">百度</a><br>' escapeXml="true"/><br>
	escapeXml=false:<c:out value='<a href="http://baidu.com">百度</a><br>' escapeXml="false"/><br>

c:remove
删除属性

	=====c:remove=====<br>
	<c:set var="a" value="b" scope="request"/>
	删除前显示:${requestScope.a}<br>
	<c:remove var="a" scope="request"/>
	删除后显示:${requestScope.a}<br>

JSTL选择语法
单重选择
<c:if test="">
注意:用来选择的条件全都用EL包裹写在JSTL中

	<c:if test="${10<2}" var="result" scope="request">
	<!--var中存放结果集,scope中指定结果集存放范围-->
		选择内容
	</c:if>

多重选择
类似于switch选择结构

	<c:choose>
		<c:when test=""></c:when>
		<c:when test=""></c:when>
		<c:when test=""></c:when>
		<c:otherwise></c:otherwise>
	</c:choose>

JSTL迭代标签
普通迭代
<c:forEach begin=“初始值” end=“结束值” step=“步长”>

	<c:forEach begin="0" end="5" step="1" varStatus="status">
	<!-- varStatus:用于放属性值 ,有index(当前下标)-->
		${status.index}-
		test<br>
	</c:forEach>

遍历数组或集合
需要添加属性var和items

	<c:forEach var="name"  items="${requestScope.names}" varStatus="status">
	<!-- var表示每一次用于承接数组元素的容器,items为被遍历的数组对象 -->
		${status.index}-${name}<br>
	</c:forEach>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值