一、什么是JSTL、有什么用
全称 : JSP Standard Tag Library jsp标准标签库
简化jsp的代码编写。 替换 <%%> 写法。 一般与EL表达式配合
二、怎么使用JSTL
1. 导jar包
注:jstl1.2以前,需导入 jstl.jar和standard.jar
如果是jstl1.2以上,就不需要引用stardard.jar库了
jstl1.2 提取码: qnm7
2. 在jsp页面上,使用taglib 指令,来引入标签库
注: 如果想支持 EL表达式,那么引入的标签库必须选择1.1的版本,1.0的版本不支持EL表达式。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3.常用标签使用
<c:set></c:set>
<c:if test=""></c:if>
<c:forEach></c:forEach>
- c:set
赋值
<!-- 声明一个对象name, 对象的值 zhangsan , 若没指定scope,默认存储到了page -->
<c:set var="name" value="zhangsan" scope="session"></c:set>
<!-- 取值 -->
${sessionScope.name }
- c:if
判断test里面的表达式是否满足,如果满足,就执行c:if标签中的输出 , c:if 是没有else的。
<c:set var="age" value="18" ></c:set>
<c:if test="${ age > 16 }">
年龄大于了16岁...
</c:if>
<c:if test="${ age <= 16 }">
年龄小于了16岁...
</c:if>
<--定义一个变量名 flag 去接收前面表达式的值,然后存在session域中-->
<c:if test="${ age > 26 }" var="flag" scope="session">
年龄大于了26岁...
</c:if>
- c:forEach
遍历
<--从1 开始遍历到10 ,得到的结果 ,赋值给 i ,并且会存储到page域中,step:增幅为2,可不设默认为1-->
<c:forEach begin="1" end="10" var="i" step="2">
${i }
</c:forEach>
<!-- items : 表示遍历哪一个对象,注意,这里必须写EL表达式。 var: 遍历出来的每一个元素用user 去接收。 -->
<c:forEach var="user" items="${list}">
${user.name } ----${user.age }
</c:forEach>