JavaWeb开发之JSTL

本文深入解析JSP标准标签库(JSTL)的概念、使用方法及优势,涵盖EL表达式结合使用技巧,详述核心标签如set、out、remove、catch等的功能与应用场景,并通过实例演示条件、迭代及格式化标签的运用。

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

1.概念

JSP Standard Tag Library JSP 标准标签库,JSP 为开发者提供的一系列的标签,使用这些标签可以完成 一些逻辑处理,比如循环遍历集合,让代码更加简洁,不再出现 JSP 脚本穿插的情况。
实际开发中 EL 和 JSTL 结合起来使用,JSTL 侧重于逻辑处理,EL 负责展示数据。

2.JSTL的使用

  • 1、需要导入 jar 包(两个 jstl.jar standard.jar)
    存放的位置 web/WEB-INF

  • 2、在 JSP ⻚面开始的地方导入 JSTL 标签库
    <%@ 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>

3.JSTL的优点

  • 1、提供了统一的标签
  • 2、可以用于编写各种动态功能

4.标签

set、out、remove、catch

  • 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
    输出域对象中的数据
<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]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值