2018-10-06

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文件中。

检索地址:https://baike.baidu.com/item/JSTL/1330422?fr=aladdin

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应用中的文件,甚至是网络上的资源。

          Java代码 <c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>  

          Java代码 <c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]>  

           【参数说明】:

             I、URL为资源的路径,当应用的资源不存在时系统会抛出异常,因此该语句应该放在<c:catch></c:catch>语句块中捕获。绝对路径和相对路径

             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,用于读取资源。

详细检索地址:http://leon906998248.iteye.com/blog/1502569

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JSTL概念 JSTL(JavaServer Pages Standard Tag Library,JSP标准标签...
    开心笨小孩7980阅读 338评论 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 3,399评论 0 3
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    91数据阅读 3,692评论 0 13
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 4,221评论 2 8
  • 2016年12月28日,婺城区公路管理段主持召开2016年开发区农村公路桥梁定期检查项目报告审查会。浙江正达检测科...
    e11521c791ad阅读 173评论 0 0

友情链接更多精彩内容