快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰平台游戏b_龟发之家论坛



JSP 标准标记库( Standard Tag Library,JSTL)是一个实现利用法度榜样中常见的通用功能的定制标记库集,这些功能包括迭代和前提判断、数据治理款式化、XML 操作以及数据库造访。在 developerWorks 上其新系列的第一篇文章中,软件工程师 Mark Kolb 向您展示了若何应用 JSTL 标记来避免在 JSP 页面中应用脚本体例元素。您还将懂得若何经由过程从表示层删除源代码来简化软件掩护。着末,您将懂得 JSTL 颠末简化的表达式说话,它容许在不必应用功能齐备的编程说话的环境下对 JSTL 操作指定动态属性值。

JavaServer Pages(JSP)是用于 J2EE 平台的标准表示层技巧。JSP 技巧供给了用于履行谋略(这些谋略用来动态地天生页面内容)的脚本体例元素和操作。脚本体例元素容许在 JSP 页面中包括法度榜样源代码,在为响利用户哀求而出现页面时可以履行这些源代码。操作将谋略操作封装到很象 HTML 或 XML 标记的标记中,JSP 页面的模板文本平日包孕这些标记。JSP 规范只将几种操作定义成了标准,但从 JSP 1.1 开始,开拓职员已经能够以定制标记库的要领创建其自己的操作了。

JSP 标准标记库(JSTL)是 JSP 1.2 定制标记库集,这些标记库实现大年夜量办事器端 Java 利用法度榜样常用的基础功能。经由过程为范例表示层义务(如数据款式化和迭代或前提内容)供给标准实现,JSTL 使 JSP 作者可以专注于特定于利用法度榜样的开拓需求,而不是为这些通用操作“重新努力别辟门户”。

当然,您可以应用 JSP 脚本体例元素(scriptlet、表达式和声明)来实现此类义务。例如,可以应用三个 scriptlet 实现前提内容,清单 1 中着重显示了这三个 scriptlet。然则,由于脚本体例元素依附于在页面中嵌入法度榜样源代码(平日是 Java 代码),以是对付应用这些脚本体例元素的 JSP 页面,其软件掩护义务的繁杂度大年夜大年夜增添了。例如,清单 1 中的 scriptlet 示例严格地依附于花括号的精确匹配。假如不经意间引入了一个语法差错,则前提内容中的嵌套其它 scriptlet 可能会造成严重破坏,并且在 JSP 容器编译该页面时,要使所孕育发生的差错信息故意义可能会很艰苦。

清单 1. 经由过程 scriptlet 实现前提内容

Welcome, member!

Welcome, guest!

修正此类问题平日必要相称富厚的编程履历。只管平日会由十分精晓页面结构和图形设计的设计职员来开拓和掩护 JSP,然则同一页面中的脚本体例元素呈现问题时,必要法度榜样员的参与。这种状况将单个文件中代码的责任分担给多人,因而使得开拓、调试和增强此类 JSP 页面成为很麻烦的义务。经由过程将常用功能包装到定制标记库的标准聚拢中,JSTL 使 JSP 作者可以削减对体例脚本元素的需求,以致可以不必要它们,并避免了相关的掩护资源。

JSTL 1.0

JSTL 1.0 宣布于 澳门新葡亰平台游戏b2002 年 6 月,由四个定制标记库( core 、 format 、 xml 和 sql )和一对通用标记库验证器( ScriptFreeTLV 和 PermittedTaglibsTLV )组成。 core 标记库供给了定制操作,经由过程限定了感化域的变量治理数据,以及履行页面内容的迭代和前提操作。它还供给了用来天生和操作 URL 的标记。顾名思义, format 标记库定义了用来款式化数据(尤其是数字和日期)的操作。它还支持应用本地化资本束进行 JSP 页面的国际化。 xml 库包孕一些标记,这些标记用来操作经由过程 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。

两个 JSTL 标记库验证器容许开拓职员在其 JSP 利用法度榜样中强制应用编码标准。可以设置设置设备摆设摆设 ScriptFreeTLV 验证器以在 JSP 页面中禁用各类类型的 JSP 脚本元素 ― scriptlet、表达式和声明。类似地, PermittedTaglibsTLV 验证器可以用来限定可能由利用法度榜样的 JSP 页面造访的定制标记库集(包括 JSTL 标记库)。

只管 JSTL 终极将会成为 J2EE 平台的必需组件,但今朝只有少数利用法度榜样办事器包括它。JSTL 1.0 的参考实现可作为 Apache 软件基金会(Apache Software Foundation)的 Jakarta Taglibs 项目(请参阅 参考资料)的一部分而得到。可以将该参考实现中的定制标记库合并到任何支持 JSP 1.2 和 Servlet 2.3 规范的办事器,以添加对 JSTL 的支持。

表达式说话

在 JSP 1.2 中,可以应用静态字符串或表达式(假如容许的话)指定 JSP 操作的属性。例如,在清单 2 中,对操作的 name 和 property 属性指定了静态值,而用表达式指定了其 value 属性。这个操作的效果是将哀求参数确当前值付与命名的 bean 特点。以这种形式应用的表达式被称为 哀求时属性值(request-time attribute value),这是构建到 JSP 规范中的用于动态指定属性值的独一机制。

清单 2. 合并哀求时属性值的 JSP 操作

'/>

由于哀求时属性值是用表达式指定的,以是它们每每有和其它脚本元素一样的软件掩护问题。是以,JSTL 定制标记支持另一种用于指定动态属性值的机制。可以用简化的 表达式说话(EL)而不应用完备的 JSP 表达式来指定 JSTL 操作的属性值。EL 供给了一些标识符、存取器和运算符,用来检索和操作驻留在 JSP 容器中的数据。EL 在某种程度上以 EcmaScript(请参阅 参考资料)和 XML 路径说话(XML Path Language,XPath)为根基,是以页面设计职员和法度榜澳门新葡亰平台游戏b样员都应该认识它的语法。EL 长于探求工具及其特点,然后对它们履行简单操作;它不是编程说话,以致不是脚本体例说话。然则,与 JSTL 标记一路应用时,它就能应用简单而又方便的符号来表示繁杂的行径。EL 表达式的款式是这样的:用美元符号($)定界,内容包括在花括号({})中,如清单 3 所示。

清单 3. 阐明 EL 表达式定界符的 JSTL 操作

此外,您可以将多个表达式与静态文本组合在一路以经由过程字符串并置来构造动态澳门新葡亰平台游戏b属性值,如清单 4 所示。零丁的表达式由标识符、存取器、翰墨和运算符组成。标识符用来引用存储在数据中间中的数据工具。EL 有 11 个保留标识符,对应于 11 个 EL 隐式工具。假定所有其它标识符都引用 限定了感化域的变量。存取器用来检索工具的特点或聚拢的元素。翰墨表示固定的值澳门新葡亰平台游戏b ― 数字、字符、字符串、布尔型或空值澳门新葡亰平台游戏b。运算符容许对数据和翰墨进行组合以及对照。

清单 4. 组合静态文本和多个 EL 表达式以指定动态属性值

您可能还会对下面的文章感兴趣: