JSTL (jsp 标准标签库) 包含用于编写和开发JSP页面的一组标准标签,它可为用户提供一个无脚本的环境。
JSTL 提供了4个主要的标签库: 核心标签库、国际化(I18N)与格式化标签库、XML标签库,以及SQL标签库。
1 核心标签库
优点: 可以查看源代码
核心标签库中通用标签 用于操作JSP页面创建的范围变量。其中的条件标签用于对JSP页面中的代码进行条件判断,二迭代标签用于循环遍历一个对象集合。
Ø 通用标签
<c:set> :
这只网页中的变量,如果该变量不存在则创建它
<c:set var=”uid” value=”value” scope=”page/request/session/application” />
<c:remove>
用于删除创建的变量
<c:remove var=”varname” scope=” page/request/session/application” />
<c:out>
计算表达式结果,并将结果存储在当前的jspWriter对象中
<c:out value=”value” escapeXML=”true/false” default=”defalutValue” />
其中:
value : 指表达式
escapeXML: 确定是否应将结果中的字符(如 > < & 等)转换成字符实例代码,默认值为true;
default: 默认值(如果结果值为NULL)
Ø 条件标签
<c:if>
<c:if test=”condition” var=”varName” scope=” page/request/session/application”>
Body Content
</c:if>
其中:
test: 指定条件
var : test 条件的变量的名称
scope:指定var的范围
<c:choose>
类似java中的swich 语句
<c:choose>
<c:when test=”条件1”>
方法体1
</c:when>
<c:when test=”条件2”>
方法体2
</c:when>
<c:otherwise>
方法体3
</c:otherwise>
</c:choose>
Ø 迭代标签
<c:forEach>
用于重复真各个对象集合中嵌套的标签体内容
<c:forEach var=”varName” items=”conllection” varStatus=”varStatusName” begin=”begin” end =”end”>
Body content
</c:forEach>
其中:
var : 指定导出的范围变量的名称
items: 指定要遍历的对象的集合
varStatus: 为遍历状态指定范围变量的名称。
begin: 开始遍历的索引
end: 结束遍历的索引
<c:forTokens>
<c:forTokens items=”StringofToken” delims=”delimiters” var=”varName” varStatus=”varStatusName”>
Body Content
</c:forTokens>
其中:
Items: 要遍历的值
delims: 指定用于分隔字符串中的记号的字符
var:为遍历对象指定范围变量的名称
varStatus:为遍历状态指定范围变量的名称
2 国际化与格式标签库
国际化(I18N)与格式化标签库可以用于创建国际化的Web应用程序,他们对数字和日期-时间的输出进行了标准化。
<%@ taglib url=”http://java.sun.com/jstl/fmt_rt” prefix=”fmt” %/>
<fmt:setLocale>
用于重写客户端指定的区域设置
<fmt:setLocale value=”setting” variant=”variant” scope=”page/request/session/application” />
其中:
value : 包含一个含有小写字母的语言代码和一个含有两个大写字母的国家代码。语言和国家代码应该用连字符或下划线分隔。
variant: 指定特定于浏览器的变量(可选)
<fmt:bundle>
创建一个 I18N本地上下文,并将它的资源包加载到其中。资源包的名称由<fmt:bundle>标签的basename属性指定。
<fmt:bundle basename=”basename”>
Body content
</fmt:bundle>
<fmt:message>
用于给出资源包的输出值
<fmt:message key=”messageKey” />
<fmt:formatDate>
<fmt:formatDate value=”date” pattern=”yyyy-MM-dd HH:mm:ss” />