1.JSTL的概念
JSTL是Apache对EL表达式的扩展,是标签语言,需要手动导包
2.JSTL标签库的作用
提升JSP页面的逻辑代码的编码效率,使用标签来替换逻辑代码的直接书写
3.使用JSTL标签库
(1)导入jar包
(2)声明jstl标签库的引入
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
(3)内容:
基本标签:
<c:out value="数据" default="默认值"></c:out>
作用:将数据输出给客户端
数据可以是常量值,也可以是EL表达式
<c:set var="" value="" scope=""></c:set>
作用:存储数据到作用域对象中
var:表示存储的键名
value:表示存储的数据
scope:表示要存储的作用域对象(page request session application)
<c:remove var="" scope=""></c:remove>
作用:删除作用域中的指定的键的数据
var:表示要删除的键的名字
scope:表示要删除的作用域对象
注意:
如果不指定作用域,将删除四个作用域中符合要求的对象
逻辑标签:
<c:if test="${表达式}">
前端代码
</c:if>
作用:进行逻辑判断,相当于java代码的但分支判断
注意:
逻辑判断标签需要依赖于EL的逻辑运算,也就是表达式中涉及到的数据必须从作用域中获取
<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="" varStatus="vs"> 常量循环
循环体
</c:forEach>
<c:forEach items="${list}" var="str"> 动态循环
${str.*}
</c:forEach>
<c:forEach items="${map}" var="m"> 动态循环
${m.key}--${m.value}
</c:forEach>
作用:循环内容进行处理
begin:声明循环开始位置
end:声明循环结束位置
step:设置步长
varStatus:声明变量记录每次循环的数据(角标、次数、是否是第一次循环、是否是最后一次循环)
注意:数据存储在作用域中,需要使用EL表达式获取
例如:${vs.index}--${vs.count}--${vs.first}--${vs.last}
items:声明要遍历的对象,结合EL表达式获取对象
var:声明变量记录每次循环的结果,存储在作用域中,需要使用EL表达式获取
- JSTL的格式化标签库
- JSTL的SQL标签库
- JSTL的函数标签库
- JSTL的XML标签库