1 、 JSTL 概述1.1 、 JSTL 介绍 百度百科给出的解释: 注:JSP1.2以及Servlet2.3或者是之上版本都可以支持JSTL1.2 、 JSTL 的作用 和 EL 表达式一起,用来简化 JSP 中 "<% %>" 的书写,简化 JSP 页面,方便后期维护。1.3 、 JSTL 版本 JSTL1.0 :不支持 EL 表达式 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] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 8 <!-- 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] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 <!-- 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] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 <!-- 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] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 <!-- 遍历集合 --> <% String[] args = { "aaa" , "bbb" , "ccc" , "ddd" }; pageContext.setAttribute( "args" , args); %> <!-- 遍历数组 --> <!-- var : 当前正在遍历的数据 items : 要进行遍历的数组 --> <c:forEach var= "val" items= "${args }" > ${val } </c:forEach> 运行结果: 案例 2- 遍历集合数据:代码: [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 <!-- 遍历集合 --> <% 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] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 <% 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] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 8 <!-- begin : 起始值 end : 结束值 step : 步长,默认为 1 --> <c:forEach var= "i" begin= "1" end= "10" step= "1" > ${i } </c:forEach> 运行结果: 1.png (5.75 KB, 下载次数: 0)