• JSTL是由JCP(Java Commnunity Process)指定的标准规范,是一组形如html的标签,使得程序员即使不需要学习Java也可以编写动态Web页。自2002年中期发布后,它已成为JSP平台的一个标准组成部分。
• JSTL提供了诸如循环、条件、数据库访问、XML处理、国际化等开发上的工具和流程。
• 目前最新的版本为1.2,是一个正在不断开发和完善的开放源代码的JSP标签库,它支持多种标签。
下面介绍几种核心标签库的通用标签:
在使用jstl之前,要导入jstl的包,然后在jsp页面中写入:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
语法1,没有标签体的情况:
<c:out value="value"
[escapeXml="{true|false}"]
[default="defaultValue"] />
语法2,有标签体的情况,在标签体中指定输出的默认值:
<c:out value="value"
[escapeXml="{true|false}"] >
default value
</c:out>
--------c:set-----------
<c:set>标签用于设置各种Web域中的属性,或者设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性。<c:set>标签有四种语法格式:
语法1,使用value属性设置指定域中的某个属性的值:
<c:set value="value"
var="varName"
[scope="{page|request|session|application}"] />
语法2,在标签体中设置指定域中的某个属性的值:
<c:set var="varName"
[scope="{page|request|session|application}"]>
body content
</c:set>
语法3,使用value属性设置Web域中的一个属性对象的某个属性:
<c:set value="value"
target="target"
property="propertyName" />
语法4,在标签体中设置Web域中的一个属性对象的某个属性性:
<c:set target="target" property="propertyName"> body content </c:set> <c:set var="user" value="Tom" scope="session"/> <c:out value="${user }" /> <% Map map = new HashMap(); request.setAttribute("map",map); %> <c:set target="${map }" property="city" value="baoding"/> <c:out value="${map.city }"/>
---------c:remove-------------
<c:remove>标签用于删除各种Web域中的属性,举例
<% session.setAttribute("date","2011.11.10"); %> date = ${date }<br> <c:remove var="date"/> <c:out value="${date }" default="date已经被删除"/>
----------------c:catch-------
<c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常,举例:
<c:catch var="error"> <%=1/0 %> </c:catch>
---------------c:if--------------
JSP页面的显示逻辑中也经常需要进行条件判断,<c:if>标签可以构造简单的“if-then”结构的条件表达式,如果条件表达式的结果为真就执行标签体部分的内容。举例:
<c:if test="${date == null }" var="result" scope="page">
${result }表达式成立
</c:if>
--------------c:forTokens--------------
<c:forTokens>标签专门用于实现类似java.util.StringTokenizer类的迭代功能,但它是以单个字符作为分隔符,同时可以指定多个字符作为多个并行的分隔符。举例:
<c:forTokens items="2011-11-10" delims="-" var="token"> <c:out value="${token }"/> </c:forTokens> <c:forTokens items="123456789" delims="1357" var="token"> <c:out value="${token }"/> </c:forTokens>
2011年11月10日 20:09:50