简介
JSTL(javaServer Pages Tag Library) JSP标准标签库
使用JSTL实现jsp页面中的逻辑处理,用于简化和替换jsp页面上的java代码。
使用方式
1.添加依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
2.引入标签库,taglib指令
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3.使用标签:
<c:out value="123"></c:out>
核心标签
<c:out>在jsp中显示数据,类似于<%= %>
<c:set>用于设置数据
<c:remove>用于移除数据
<c:if>test是必须属性,接受boolean表达式,一般情况下,test属性值会结合el表达式一起使用
<c:choose>相当于java代码的switch语句,相当于switch声明
<c:when>相当于case声明
<c:otherwise>相当于default
<c:import>检索一个URL,并将其内容显示在页面上
<c:foreach>相当于java代码中的for语句
<c:redirect>重定向至一个新的URL
<c:param>向重定向的页面传递参数
<c:if>的使用
<c:set var="num" value="30"/>
<c:if test="${num > 20}">
num > 20
</c:if>
<c:choose>的使用
<c:set var="number" value="3"/>
<c:choose>
<c:when test="${number == 1}">星期一</c:when>
<c:when test="${number == 2}">星期二</c:when>
<c:when test="${number == 3}">星期三</c:when>
<c:when test="${number == 4}">星期四</c:when>
<c:when test="${number == 5}">星期五</c:when>
<c:when test="${number == 6}">星期六</c:when>
<c:when test="${number == 7}">星期天</c:when>
<c:otherwise>数字输入有误</c:otherwise>
</c:choose>
<c:foreach>的使用
begin:开始值,end:结束值,var:临时变量,step:步长,items:容器对象,
varStatus:循环对象状态,属性index:容器中元素的索引,从0开始,属性count:循环次数,从1开始。
<c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
${i} <h3>${s.index}<h3> <h4> ${s.count} </h4><br>
</c:forEach>
<%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str" varStatus="s">
${s.index} ${s.count} ${str}<br>
</c:forEach>
JSTL函数
引入标签库:
<%@ taglib prefix="fn"
uri="http://java.sun.com/jsp/jstl/functions" %>
fn:contains() 测试输入的字符串是否包含指定字符串
fn:indexOF() 返回指定字符串在输入字符串中出现的位置
fn:join() 将数组中的元素合并为一个字符串然后输出
fn:length() 返回字符串长度
fn:replace() 将输入字符串中指定的位置替换为指定的字符串然后返回
fn:split() 将字符串用指定的分隔符分隔然后组成一个字符串数组并返回
fn:toLowerCase() 将字符串中的字符转化为小写
fn:toUpperCase() 将字符串中的字符转换为大写
fn:trim() 移除首尾的空白符