JSTL
-
JSP Standard Tag Library
:JSP
标准标签库,JSP
为开发者提供的一系列的标签,使用这些标签可以完成 ⼀些逻辑处理,比如循环遍历集合,让代码更加简洁,不再出现JSP
脚本穿插的情况。 -
实际开发中
EL
和JSTL
结合起来使⽤,JSTL
侧重于逻辑处理,EL
负责展示数据。JSTL
的使⽤
1、需要导⼊ jar
包(两个 jstl.jar
、standard.jar
)存放的位置
下载地址:jakarta-taglibs-standard-1.1.2.zip
2、在·JSP
页面开始的地方导入 JSTL
标签库,用c
表示JSTL
标签库,存放的位置web/WEB-INF
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3、在需要的地⽅使⽤
<c:forEach items="${list}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.score}</td>
<td>${user.address.value}</td>
</tr>
</c:forEach>
JSTL 优点:
1、提供了统⼀的标签
2、可以⽤于编写各种动态功能
核心标签库常用标签:
-
set、out、remove、catch
-
set:向域对象中添加数据,有局限性不能
set
对象
<%
requset.setAttribute(key,value)
%>
<c:set var="name" value="tom" scope="request"></c:set>
${requestScope.name}
<%
User user = new User(1,"张三",66.6,new Address(1,"科技路"));
request.setAttribute("user",user);
%>
${user.name}
<hr/>
<c:set target="${user}" property="name" value="李四"></c:set>
${user.name}
- out:输出域对象中的数据,name为空的时候可以展示
default
中的数据
<c:set var="name" value="tom"></c:set>
<c:out value="${name}" default="未定义"></c:out>
remove
:删除域对象中的数据
<c:remove var="name" scope="page"></c:remove>
<c:out value="${name}" default="未定义"></c:out>
catch
:捕获异常
<c:catch var="error">
<%
int a = 10/0;
%>
</c:catch>
${error}
- 条件标签:if choose
<c:set var="num1" value="1"></c:set>
<c:set var="num2" value="2"></c:set>
<c:if test="${num1>num2}">ok</c:if>
<c:if test="${num1<num2}">fail</c:if> <hr/>
<c:choose>
<c:when test="${num1>num2}">ok</c:when>
<c:otherwise>fail</c:otherwise>
</c:choose>
- 迭代标签:
forEach
<c:forEach items="${list}" var="str" begin="2" end="3" step="2" varStatus="sta">
${sta.count}、${str}<br/>
</c:forEach>
格式化标签库常用的标签:
<%
request.setAttribute("date",new Date());
%>
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss">
</fmt:formatDate><br/>
<fmt:formatNumber value="32145.23434" maxIntegerDigits="2"
maxFractionDigits="3"></fmt:formatNumber>
函数标签库常用的标签:
<%
request.setAttribute("info","Java,C");
%>
${fn:contains(info,"Python")}<br/>
${fn:startsWith(info, "Java")}<br/>
${fn:endsWith(info, "C")}<br/>
${fn:indexOf(info, "va")}<br/>
${fn:replace(info, "C","Python")}<br/>
${fn:substring(info, 2, 3)}<br/>
${fn:split(info, ",")[0]}-${fn:split(info, ",")[1]}