JSTL标签库核心标签C标签的使用

时间:2022-11-16 14:45:49

一、jstl标签介绍:jstl标签是为了解决EL表达式不能循环取出集合对象的问题,是建立在EL表达式基础上的语言,两者之间是互通的,属于jsp外部的一个标准标签,库导入标签格式为:<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>

二、核心标签C标签使用介绍:
1、 输出标签:<c:out value="${属性名}"></c:out>

2、迭代标签:
<c:forEach items="${userList}" var="user" varStatus="status" begin="0" end="${userList.size}" step="1" >
//循环体
<c:out value="${status.index}"></c:out>
<c:out value="${status.count}"></c:out>
<c:out value="${ user.name }"></c:out>
<c:out value="${ user.age }"></c:out>
</c:forEach>

参数说明:
1)items:是集合,用EL表达式;
2)var:变量名,存放items各个项 ,代表集合中每一条数据
3)varStatus: 显示循环状态的变量,有一下几个属性:
①index:从0开始; 显示当前迭代的索引值
②count:元素位置,从1开始; 显示当前迭代显示的行位置,通过配合判断语句,实现给奇、偶行着不同的色,以进行分区
③first:如果是第一个元素则显示true;
④last:如果是最后一个元素则显示true;
4)begin:循环的初始值(整型);
5)end: 循环结束(整型);
6)step:步长,循环间隔的数值(整型);


3、判断标签:
<c:if test="判断语句"></c:if>:如果满足test中的条件,则执行<c:if></if>标签对之间的的语句,相当于if....的结构功能,例如:<c:if test="${null != user}">......</c:if>


4、多重判断标签:由于JSTL没有形如if (){…} else {…}的条件语句,所以这种形式的语句只能用<c:choose>

<c:choose>
<c:when test="判断语句1">执行语句1</c:when>
<c:when test="判断语句2">执行语句1</c:when>
..........
<c:otherwise>前面都不符合,执行此默认语句</c:otherwise>
</c:choose>


5、重定向请求标签:标签将请求重新定向到另外一个页面
<c:redirect url="http://www.baidu.com/login.jsp"/>,将请求重新定向到http://www.baiddu.com/login.jsp页,相当于response.setRedirect ("http://www.yourname.com/login.jsp");


6、参数标签:
<c:param>标签,用来传递参数给一个重定向或包含页面
例子:
<c:redirect url="http://www.baidu.com/login.jsp">
<c:param name="paramName" value="paramValue"/>
</c:redirect>
这个就在地址栏里面显示的形式为:http://www.baidu.com/login.jsp?paramName=paramValue

7、url编码标签:
<c:url>标签将URL格式化为一个字符串,然后存储在一个变量中。这个标签在需要的时候会自动重写URL。var属性用于存储格式化后的URL。
<c:url>标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数。


8、数据保存标签:
<c:set>标签就是<jsp:setProperty>行为标签的孪生兄弟,用于保存数据
例如:<c:set var="rootPath" value="${pageContext.request.contextPath}"/>,保存项目根路径,使用的时候通过EL表达式取出,${rootPath}


PS:所有使用c标签的过程中,使用了var属性,代表保存了该数据,则都可以通过EL表达式取出,如上面的第8条