1 、 JSTL 概述
1.1 、 JSTL 介绍
百度百科给出的解释:
![]()
注:JSP1.2以及Servlet2.3或者是之上版本都可以支持JSTL
1.2 、 JSTL 的作用
和 EL 表达式一起,用来简化 JSP 中 "<% %>" 的书写,简化 JSP 页面,方便后期维护。
1.3 、 JSTL 版本
- JSTL1.1/JSTL1.2 :支持 EL 表达式,常用
1.4 、 JSTL 标签库介绍
JSTL 标签库共计提供了 5 类标签供我们使用,分别是:
- 核心标签( c 标签) -- 常用,需要记住
- 格式化标签
- SQL 标签
- xml 标签
- JSTL 函数库(fn 函数)
1.5 、 JSTL 标签使用入门
要使用 JSTL ,需要做如下操作:
1 、引入 jar
2 、在 JSP 中引入标签库 ( 以 c 标签为例 )
4 、运行,结果演示
5 、在 JSP 中使用 c 标签
2 、 JSTL 常用标签介绍
JSTL 中常用的就是核心标签库的标签,也称为 c 标签。这里面就来介绍几个比较常用的 c 标签
2.1 、 <c:set>
一般用来向 JSP 作用域中存储数据,相当于 setAttribute()
代码:
[Java] 纯文本查看 复制代码 <!--
var : 存储值对应的名称
value : 存储的值
scope : 作用域,可以是 page|request|session|application
-->
<c:set var="score" value="90" scope="page"></c:set>
<!-- 从作用域中获取 score 的值 -->
成绩: ${pageScope.score } - ${score }
运行结果:
2.1 、 <c:out>
向页面输出数据
代码:
[Java] 纯文本查看 复制代码 <!-- c:out 标签演示 -->
<!--
value : 指定要输出的内容
default : 如果输出的内容为空,就是用 default 的值
escapeXml : 是否要忽略内容中的 html 标签
-->
<!-- value 为普通字符串,直接输出即可 -->
<c:out value="aaa"></c:out><br/>
<!-- 如果 value 为空,则输出 default -->
<c:out value="${city }" default=" 北京 "></c:out><br/>
<!--
如果 value 中包含 html 标签:
需要解析 html 标签,则需要设置 escapeXml="false"
将 html 标签也作为字符串输出,需要设置 escapeXml="true"
escapeXml 默认为 true
-->
<c:out value="<h1>aaaa</h1>" ></c:out><br/>
<c:out value="<h1>aaaa</h1>" escapeXml="false"></c:out><br/>
运行结果如下:
2.3 、 <c:if>
** 在 JSP 中替换 if...else... 的脚本代码,完成判断操作
代码:
[Java] 纯文本查看 复制代码 <!-- c:if 演示 -->
<c:set var="score" value="90" scope="page"></c:set>
<!--
test : 判断的条件
-->
<c:if test="${score > 90 }">
优秀
</c:if>
<c:if test="${score <= 90 }">
良好
</c:if>
运行结果:
注意:<c:if>没有else,如果需要else操作,则需要两个<c:if>
2.4 、 <c:forEach>
** 在页面中完成集合数据的遍历,可以遍历数组、集合、 map 、 ... ,还可以获得连续数字
案例 1- 遍历数组数据:
代码:
[Java] 纯文本查看 复制代码 <!-- 遍历集合 -->
<%
String[] args = {"aaa","bbb","ccc","ddd"};
pageContext.setAttribute("args", args);
%>
<!-- 遍历数组 -->
<!--
var : 当前正在遍历的数据
items : 要进行遍历的数组
-->
<c:forEach var="val" items="${args }">
${val }
</c:forEach>
运行结果:
案例 2- 遍历集合数据:
代码:
[Java] 纯文本查看 复制代码 <!-- 遍历集合 -->
<%
List<String> args = new ArrayList<String>();
args.add("aaa");
args.add("bbb");
args.add("ccc");
args.add("ddd");
pageContext.setAttribute("args", args);
%>
<!-- 遍历数组 -->
<!--
var : 当前正在遍历的数据
items : 要进行遍历的集合
-->
<c:forEach var="val" items="${args }">
${val }
</c:forEach>
运行结果:
案例 3- 遍历 map 数据:
代码:
[Java] 纯文本查看 复制代码 <%
Map<String, String> args = new HashMap<String,String>();
args.put("aaa","111");
args.put("bbb","222");
args.put("ccc","333");
args.put("ddd","444");
pageContext.setAttribute("args", args);
%>
<!-- 遍历数组 -->
<!--
var : 当前正在遍历的数据
items : 要进行遍历的数组
varStatus : 当前状态,可以获取序号
-->
<c:forEach var="val" items="${args }" varStatus="status">
序号 : ${status.count }, ${val.key } - ${val.value } <br/>
</c:forEach>
运行结果:
案例 4- 获取连续数字:
代码:
[Java] 纯文本查看 复制代码 <!--
begin : 起始值
end : 结束值
step : 步长,默认为 1
-->
<c:forEach var="i" begin="1" end="10" step="1">
${i }
</c:forEach>
运行结果:
|