什么是JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
JSTL通常会与EL表达式合作实现JSP页面的编码
使用JSTL的步骤
创建Web工程,选择JSTL1.1
在JSP页面添加taglib指令
使用JSTL标签
…… <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> ……
通用标签的使用
set:设置指定范围内的变量值
out:计算表达式并将结果输出显示
remove:删除指定范围内的变量
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <body> <c:set var= "example" value="${100+1}" scope="session" /> <c:out value="${example}"/> <c:remove var= "example" scope="session"/> </body>
注:
set 标签用于给变量 ,设置值和作用范围
scope= "page|request|session|application"
out 标签在页面上显示信息或变量值
remove 标签用于删除作用域内的变量
通用标签的应用:
<body> <!-- 设置之前应该是空值 --> 设置变量之前的值是:msg=<c:out value="${msg}" default="null"/> <!-- 给变量msg设值 --> <c:set var="msg" value="Hello ACCP!" scope="page"></c:set> <!-- 此时msg的值应该是上面设置的"已经不是空值了" --> 设置新值以后:msg=<c:out value="${msg}"></c:out><br> <!-- 把 msg变量从page范围内移除--> <c:remove var="msg" scope="page"/> <!-- 此时msg的值应该显示null --> 移除变量msg以后:msg=<c:out value="${msg}“ default="null"> </c:out> </body>
条件标签的使用
if:if标签用于判断条件是否成,与Java中的If语句做用用相同
语法
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:if test="codition" var="name" scope="applicationArea" > … </c:if>
判断登陆:
<body> <c:set var="isLogin" value="${not empty sessionScope.userId}"/> <c:if test="${not isLogin}"> …登录表单 使用条件标签判断是否已登录 </form> </c:if> <c:if test="${isLogin}"> 已经登录! </c:if> </body>
迭代标签
实现对集合中对象的遍历
语法
<c:forEach items=collection var=name begin=start end=end step=count> …循环体代码… </forEach>
items指定要遍
历的集合对象
var指定集合内数据的变量名称
begin指定从集合的第几位开始
end指定迭代到集合的第几位结束
Step指定迭代的增量
forEach是for循环语句的变体,实现
集合对象(可以是list、数组等)的处理
迭代标签
指定迭代的次数
语法
<c:forEach var="varName" varStatus="vatStatusName" begin="start" end="end" step="count"> …循环体代码… </forEach>
forEach是for循环语句的变体,实现
集合对象(可以是list、数组等)的处理
通过迭代标签显示商品列表
<% List products = GoodsDao.getAllProducts(); request.setAttribute("products", products); %> … <!-- 循环输出商品信息 --> <c:forEach var="product" items="${requestScope.products}" varStatus="status"> <!-- 如果是偶数行,为该行换背景颜色 --> <tr <c:if test="${status.index % 2 == 1 }">style="background-color:rgb(219,241,212);"</c:if>> <td>${product.name }</td> <td>${product.area }</td> <td>${product.price }</td> </tr> </c:forEach>
时间: 2024-11-13 07:59:32