使用前需导入标签库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
1.表达式控制标签
1)out:
输出常量:
<c:out value="你好"></c:out>
输出变量:
<c:out value="${name }" default="error"></c:out> //若不存在name的值,则输出error(可选属性)
<c:out value=">" escapeXml="false"></c:out> //设置是否转义,默认为true,不转义(可选属性)
2)set:
存值到scope中(两种方式):
<c:set value="20" var="age" scope="session"></c:set>
<c:set var="age" scope="session">20</c:set>
存值到Javabean的属性中(两种方式):
<jsp:useBean id="user" class="com.nic.entity.User"></jsp:useBean>
<c:set target="${user}" property="name" value="zhangsan"></c:set>
<c:set target="${user}" property="address">山东</c:set>
3)remove:
<c:remove var="name"/> //scope是要删除变量的范围(可选参数)
4)catch:
捕获任何Throwable,发生在它的身上,有选择地公开。简单地用于错误处理,更优雅地处理这个问题。
<c:catch var ="catchException">
<% int x = 5/0;%>
</c:catch>
<c:if test = "${catchException != null}">
<p>The exception is : ${catchException} <br />
There is an exception: ${catchException.message}</p>
</c:if>
2.流程控制标签
1)if:
test内的表达式为true时,显示主体内容
其中,var属性(条件结果的变量名)和scope属性(条件结果的作用范围)是可选的
<c:if test="${3>2 }" var="result" >
<c:out value="${result}"></c:out>
</c:if>
2)choose:
用法类似于switch——case——default,也可以不使用<c:otherwise>
<c:choose>
<c:when test="">
.....
</c:when>
<c:when test="">
....
</c:when>
<c:otherwise>
....
</c:otherwise>
</c:choose>
3.循环标签
1)forEach:
<c:forEach var="book" items="bookList">
<c:out value="${book}"></c:out>
</c:forEach>
可以通过添加begin和end属性进行部分遍历,属性值为遍历区间的下标
可以通过添加step属性设置遍历的步长
2)forTokens:
该标签除了有类似<c:forEach>
的属性,还有一个额外的属性delims指定要使用的字符作为分隔符。
//打印出通过分隔符"-"分割得到的三个num
<c:forTokens items="400-888888-123" delims="-" var="num">
<c:out value="${num}"></c:out><br>
</c:forTokens>
4.URL操作标签
1)import:
导入网络上的绝对路径:
<c:import url="http://www.baidu.com" ></c:import>
导入相对路径文件:
<c:import url="test.txt" ></c:import>
由于可能网络中断导致抛出异常,所以常常把import标签放在catch标签里
2)url:
格式化成一个字符串格式的URL,并将其存储到变量中。这个标签会在必要时自动执行URL重写。 var属性指定的变量将包含格式化的URL。
URL标记提供的唯一的真正的优势是正确的URL编码,包括子param标签指定的任何参数。
<c:if test="${1<2}">
<c:set var="partUrl">temp.jsp</c:set>
</c:if>
<c:url value="http://localhost:8080/Test/${partUrl}" var="newUrl" scope="session"></c:url>
<a href="${newUrl}">New URL</a>
3)redirect:
该标签用来实现请求的重定向,同时可以在url中加入指定的参数
url属性指定重定向页面的地址,可以是一个string类型的绝对地址或相对地址
context属性用于导入其他web应用中的页面
<c:redirect url="firstDemo.jsp">
<c:param name="username">zhangsan</c:param>
<c:param name="password">123</c:param>
</c:redirect>