【笔记】JSTL学习笔记
前言
JSP标准标签库(JSP Standard Tag Library)是Java EE网络应用程序开发平台的组成部分。它在JSP规范的基础上,扩充了一个JSP的标签库来完成一些通用任务,比如XML数据处理、条件执行、数据库访问、循环和国际化。
JSTL是在JCP下,作为JSR 52被开发出来的。(维基百科)
准备工作
直接引入jar包
- 在项目中导入
jstl-1.2.jar
jar包
在Maven中引入依赖
pom.xml
1 | <dependency> |
导入JSTL标签库
- 在jsp的HTML代码之上添加代码
prefix="c"
:指定前缀,通常指定为c
1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
域中数据的操作
- 用于往域中添加数据或修改已有数据
- 默认存入pageContext域中
<key>
:域中数据的键<value>
:域中数据键对应的值
1 | <c:set var="<key>" value="<value>" /> |
向其他域存入或修改数据
<name>
:其他域的名称
page
:pageContext域resquest
:request域session
:session域application
:application域
1 | <c:set var="<key>" value="<value>" scope="<name>" /> |
判断语句
if语句
<el>
:利用EL表达式,做判断。如果值为true
,则输出标签中的内容
1 | <c:if test="<el>"> |
choose语句(相当于if else)
- 利用
<c:otherwise></c:otherwise>
语句取反
1 | <c:choose> |
循环语句
普通的方式
begin
:开始下标end
:结尾下标var
:指定的变量step
:步进数,默认为1
1 | <c:forEach begin="" end="" step="" var="i"> |
迭代的方式
items
:通过EL表达式,指定需要遍历的数组或集合var
:指定的变量
1 | <c:forEach items="" var="value"> |
迭代对象中的属性
- 如果迭代的是一个对象中的属性,需要给实体类定义get方法
src/main/java/pojo/User.java
1 | public class User { |
src/main/resource/xxx.jsp
1 | <c:forEach items="" var="user"> |
${user.id}
相当于调用getId()
方法
当前遍历状态
varStatus
:当前遍历状态
count
:返回当前是第几次遍历,从1开始index
:返回遍历的索引,从0开始first
:只有第一次遍历返回truelast
:只有最后一次遍历返回true
1 | <c:forEach items="" var="" varStatus="vs"> |