-
什么是JSTL
- JSTL全名为JSP标准标签库(Standard Tag Library)
- JSTL 是标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、XML 文件剖析、数据库查询及国际化和文字格式标准化等应用
-
JSTL的优点
- 可大大减少jsb中脚本代码、弥补EL和标准动作的不足
-
JSTL提供的标签库主要分五类:
-
JSTL的使用环境:
- 需要导入taglibs-standard-impl-1.2.5.jar包(版本可不同);若还不能正常使用JSTL标签(并提示是包的问题),可再导入jstl.jar包和standard.jar包
- 在jsp页面添上<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>标签;
-
JSTL的主要标签介绍(以声明核心标签库 core 为例):
-
表达式操作
- <c:out>功能:主要用来显示数据的内容,如同 <%=表达式 %>
- value:需要显示出来的值,必须
- default:如果value的值为null,则显示default的值,default属性不能与标签体同时出现
- escapeXml:是否转换特性字符,如>转换成 >
- 格式1(无标签体):<c:out value=“value” [escapeXml=“true|false”] [default=“默认值”] />
- 格式2(有标签体):<c:out value=“value” [escapeXml=“true|false”]>默认值</c:out>
- 这里标签体的内容同等于default属性的内容
- <c:set>功能:用来设置各种web域属性或JavaBean、Map对象属性
- value:要被存储的值
- var:欲存入的变量名称
- scope:var变量的jsp范围
- target:为javabean对象或map对象
- property:指定target对象的属性
- 格式1(无标签体): c:set value=“value” target=“对象名” property=“propertyName” />
- 格式2(有标签体):<c:set target=“对象名” property=“propertyName”>标签体内容</c:set>
- 这里标签体的内容同等于value属性的内容
- <c:remove>功能:用于移除某个变量
- var:要移除的变量名
- scope:移除变量的所属范围
- 格式:<c:remove var=“msg” scope=“session” />
- <c:catch>功能:主要用来捕获异常,并将异常信息储存起来
- 格式:<c:catch [var=“varName”] >欲捕获异常的部分</c:catch>
- <c:if> 条件判断
- test:如果表达式的结果为true,则执行本体内容,否则反之
- var:用来存储test运算后的结果,即true或false
- scope:var变量的jsp范围
- 格式:<c:if test=“测试条件" [var=“varName”][scope=“page|request|session|application”]>具体内容</c:if>
- <c:choose>、 <c:when> 和 <c:otherwise>功能:多分支判断,与switch语句类似
-
格式:
<c:choose> <c:when test=“条件表达式”> body </c:when> <c:when test=“条件表达式”> body </c:when> …… [ <c:otherwise> body </c:otherwise>] </c:choose>
-
- <c:forEach>功能:用于对一个集合中的元素进行循环迭代操作,或按指定的次数重复迭代执行标签体中的内容
-
var:用来存放现在指定的成员
-
items:被迭代的集合对象
-
varStatus:用来存放现在指到的相关成员信息、
- index:现在指到的成员索引
- count:总共指到成员的总数
- first:现在指到的成员是否为第一个成员
- last:现在指到的成员是否第一个成员
-
begin:开始的位置
-
end:结束的位置
-
step:每次迭代的间隔数
-
格式:
<c:forEach [var=“变量名”] items=“集合名” [varStatus=“迭代信息状态”] [begin=“起始索引"] [end=“终止索引”] [step=“步长"]> 标签体内容 < /c:forEach>
-
- <c:out>功能:主要用来显示数据的内容,如同 <%=表达式 %>
- <c:forTokens>功能:用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的
- var:用来存放现在指定的成员
-
items:被迭代的集合对象
-
varStatus:用来存放现在指到的相关成员信息、
- index:现在指到的成员索引
- count:总共指到成员的总数
- first:现在指到的成员是否为第一个成员
- last:现在指到的成员是否第一个成员
-
begin:开始的位置
-
end:结束的位置
-
step:每次迭代的间隔数
-
delims:定义用来分割字符串的字符
-
格式
<c:forTokens items=“迭代对象“ delims=”分隔符" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> 标签体内容 </c:forTokens>
##上述内容如若有侵权行为请联系博主进行删除##
-
- var:用来存放现在指定的成员