JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的
JSP作用域
pageContext 当前页面
requestContext 一次请求
sessionContext 当前会话
applicationContext 全局,所有用户共享
变量的基本操作—赋值,取值,删除
在jsp页面中使用jstl,需要使用下面语句进行声明。其中 prefix=“c” 表示jsp语句将以<:c 开头
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- 赋值
<c:set var="name" value="${'gareen'}" scope="request" />
<%request.setAttribute("name","gareen")%>
以上两条语句是等价的,request表示作用域
2. 取值
<c:out value="${name}" />
相当于
<%=request.getAttribute("name")%>
在jsp el中 直接 ${name}
3. 删除
<c:remove var="name" scope="request" />
相当于:
<%request.removeAttribute("name")%>
流程控制
JSTL通过<c:if test=""> 进行条件判断
<c:if test="${i<5}">
<p>如果成功,则输出这儿的语句</p>
</c:if>
在${ 。。。}里面写判断语句 ,如例子中的 i < 5
JSTL中没有else if, 但可以通过if语句取反达到else if的功能
<c:if test="${!(i<5)}">
另一种if,else if
<c:choose>
<c:when test="${hp<5}">
<p>如果成功,则显示这儿内容</p>
</c:when>
<c:otherwise>
<p>如果失败,则显示这儿内容</p>
</c:otherwise>
</c:choose>
循环
<c:forEach items="${heros}" var="hero" varStatus="st" >
items="${heros}" 表示遍历的集合
var=“hero” 表示把每一个集合中的元素放在hero上
varStatus=“st” 表示遍历的状态
<table width="200px" align="center" border="1" cellspacing="0">
<tr>
<td>编号</td>
<td>英雄</td>
</tr>
<c:forEach items="${heros}" var="hero" varStatus="st" >
<tr>
<td><c:out value="${st.count}" /></td> <!--计数-->
<td><c:out value="${hero}" /></td>
</tr>
</c:forEach>
</table>
<c:forTokens专门用于字符串拆分,并且可以指定多个分隔符>
</c:forTokens>
<c:set var="heros" value="塔姆,艾克;巴德|雷克赛!卡莉丝塔" />
<c:forTokens items="${heros}" delims=":;|!" var="hero">
<c:out value="${hero}" /> <br />
</c:forTokens>
fmt:formatNumber 格式化数字
fmt:formatDate 格式化日期