JSTL总结摘要
一 概述
1.什么是JSTL?
JSP Standard Taglib,一个定义了一系列标签的标签库,以取代在JSP页面中嵌套的java代码,经常与EL结合使用,使页面风格统一,维护方便。
JSTL标签都是成对出现的。
二 表达式标签
主要用于向作用域范围添加属性、获取属性、移除属性。作用范围从小到大依次为page<request<session<application,默认page。
- <c:out var="expression"[default="]["scope=""]>:用于将表达式的值输出到JSP页面。
- <c:set var="varName"value="value"[scope=""]>:向作用域范围添加属性。
- <c:remove var="varName"[scope=""]>:用于删除指定作用域范围内的属性。
- <c:catch var="">:用于捕获异常,并将异常存储在指定的属性中。
三 URL标签
- <c:import url="url">:用于导入站内或者站外资源。
- <c:url value=""[var=""][scope=""]>:生产一个url路径,用于赋值。
- <c:redirect url="url">:页面重定向。
- <c:param name=""value="">:用于在页面重定向时传递请求参数。
四 流程控制标签
1.条件判断标签
<c:if test="表达式"var="res"[scope=""]>标签体</c:if>
条件成立执行标签体。
2.条件选择标签
<c:choose> <c:when test="">标签体</c:when> <c:when test="">标签体</c:when> ................... <c:otherwise>标签体</c:otherwise> </c:choose>
从多个条件中选择一个执行。
五 循环标签
1.简单循环标签
<c:forEach items="sup"var="sub"begin=""end=""step=""varStatus="">标签体</c:forEach>
- items:需要遍历的对象,通常通过EL表达式获取。
- var:当前遍历子对象,即被遍历对象的一个元素。
- begin:遍历开始的索引位置。
- end:遍历结束的索引位置。
- step:每次遍历时采取的步数,即相邻两个遍历索引的差值。
- varStatus:代表遍历状态的一个对象,通过该对象不仅可以判断当前遍历是否是第一次遍历,或者最后一次遍历,还可以获取当前索引值,遍历次数。
遍历Map集合:
<c:forEach items="map"var="entry"> ${entry.key}=&{entry.value} </c:forEach>
2.迭代标签
<c:forTokens items=""var=""delims=""begin=""end=""step=""varStatus="">标签体</c:forTokens>
先分割,后遍历,分割可以采用多个分隔符,多个分隔符统一定义在delims中,紧凑排列,不加“,”,不留空格。
不能仅仅停滞在实现上,应该去追求代价更小、性能更优的实现