JSTL标签库
JSTL 是 apache 对 EL 表达式的扩展(也就是说 JSTL 依赖 EL), JSTL 是标签语言!JSTL 标签使用以来非常方便,它与 JSP 动作 标签一样,只不过它不是 JSP 内置的标签,需要自己导包,以 及指定标签库而已
用来提升在 JSP 页面的逻辑代码的编码效率,使用标签来 替换逻辑代码的直接书写
使用时需要导入jar包
JSTL 的 Jar 包:jstl-1.2.jar。
核心标签库
导入jar包
声明jstl核心标签库的引入
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
基本标签
输出标签
<c:out value=" 数据" default="默认值"></c:out>
数据可以是常量值也可以是el表达式
存储标签
<c:set var="键名" value="数据" scope="作用域对象"></c:set>
作用:存储数据到作用域对象中 类似 <% request.setAttribute("键名,“数据”) %>
var:表示存储的键名
value:表示存储的数据
scope:表示要存储的作用域对象 page request session application
移除标签
<c:remove var="键名" scope="作用域对象" />
作用:删除作用域中的指定键的数据。 类似request.removeAttribute
var:表示要删除的键的名字
scope:表示要删除的作用域(可选)
注意:
如果在不指定作用域的情况使用该标签删除数据,会将四个作用域对象中的符合要求的数据全部删除。
逻辑标签
if标签
<c:if text="${表达式}">
处理代码
</c:if>
作用:进行逻辑判断
注意:
逻辑判断标签需要依赖于EL的逻辑运算,也就是表达式中涉及到的数据必须从作用域中获取。
choose标签
<c:choose>
<c:when test=" ">执行内容</c:when>
<c:when test=" ">执行内容</c:when>
..
<c:otherwise>执行内容</c:otherwise>
</c:choose>
作用:用来进行多条件的逻辑判断,类似java中的多分支语句
注意:
条件成立只会执行一次,都不成立则执行otherwise
循环标签
常量循环
<c:forEach begin=" “ end=" " step=" ">
循环体
</c:forEach>
作用:
循环内容进行处理
begin:声明循环开始位置
end:声明循环结束位置
step:设置步长
动态循环
<c:forEach items="${list}" var="str">
${str}
</c:forEach>
<c:forEach items="${list}" var="user">
${user.name}
${user.sex}
${user.age}
</c:forEach>
items:声明要遍历的对象。结合EL表达式获取对象
var:声明变量记录每次循环的结果。存储在作用域中,需要使用EL表达式获取。
遍历map集合
<c:forEach items="${map}" var="m">
${m.key}
${m.value}
</c:forEach>