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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

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