JSTL概念
JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。
如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件中。
JSTL目的
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类:
标签库 标签库的URI 前缀
Core http://java.sun.com/jsp/jstl/core c
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/functions fn
引用格式
1、导入standard.jar和jstl.jar。
2、在JSP页面上引入 JSTL 的引用。如
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL标签库的使用
1、核心标签库
JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。使用这些标签能够完成JSP页面的基本功能,减少编码工作。如:
表达式控制标签:out标签、set标签、remove标签、catch标签。
流程控制标签:if标签、choose标签、when标签、otherwise标签。
循环标签:forEach标签、forTokens标签。
URL操作标签:import标签、url标签、redirect标签。
常用标签的详解:(常用的为if标签和forEach标签)
(1)、<c:out>标签:用来显示数据对象(字符串、表达式)的内容或结果。相当于 <% out.println(“字符串”)%> 或 <%=表达式%>。
(2)、<c:if>标签:同程序中的if作用相同,用来实现条件控制
【语法1】:Java代码 <c:if test=”条件1” var=”name” [scope=”page|request|session|application”]>
【语法2】:Java代码 <c:if test=”条件2” var=”name” [scope=”page|request|session|application”]>结果2</c:if>
【参数说明】:
I、test属性用于存放判断的条件,一般使用EL表达式来编写。
II、var指定名称用来存放判断的结果类型为true或false。
III、scope用来存放var属性存放的范围。
(3)、<c:forEach>标签:该标签根据循环条件遍历集合(Collection)中的元素。
<c:forEach var=”name” items=”Collection” varStatus=”StatusName” begin=”begin” end=”end” step=”step”>
所有内容
</c:forEach>
【参数说明】:
I、var设定变量名用于存储从集合中取出元素。
II、items指定要遍历的集合。
III、varStatus设定变量名,该变量用于存放集合中元素的信息。
IV、begin、end用于指定遍历的起始位置和终止位置(可选)。
V、step指定循环的步长。
(4)、<c:import>标签:该标签可以把其他静态或动态文件包含到本JSP页面。同<jsp:include>的区别为:只能包含同一个web应用中的文件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。
<c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>
<c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]>
【参数说明】:
I、URL为资源的路径,当应用的资源不存在时系统会抛出异常,因此该语句应该放在语句块中捕获。绝对路径和相对路径
II、context属性用于在访问其他web应用的文件时,指定根目录。例如,访问root下的index.jsp的实现代码为:
Java代码 <c:import url=”/index.jsp” context=”/root”> 等同于webapps/root/index.jsp
III、var 属性表示为资源起的别名。
IV、scope 属性标识该资源访问的范围。
V、charEncoding 属性标识该资源的编码方式。
VI、varReader 这个参数的类型是Reader,用于读取资源。
网友评论