自定义标签库而不是自己 从头开始创建。 有许多的商业的或者开源的自定义标签库现在已经可以加以利用。 但 是有一个缺点就是: 开发人员需要在 JSP 中按照这些自定义标签库所特定的格式来应 用这些标签。JSTL 的出现解决了这个
问题,因为 JSTL 提供了自定义标签的标准接 口,这些标签足以满足 JSP 开发人员的一些基本的要求。(The advent of JSTL has addressed this downside by providing standard interfaces to the custom tags that perform many basic functions JSP developers need.) 不
同的供应商可能以不同的形式实现这些 JSTL 标签,但是 JSP 开发人员不要知道实现标签时的不同点。如果 JSP 开发人员使 用 JSTL 编写了 JSP page 或者 JSP document.JSP page 或者 JSP document.该适用所 有的 JSTL 实现方法。有许多有价值的书和一些在线的资源可以去
学习 JSTL。这里 我将主要简单的介绍 JSTL 的优点与特性。 JSTL 的优点 简短的说,JSTL 提供了所有的已经公布的自定义标签库所有的好处,而且提供标准 化的标签 API。JSTL 促进了高可维护性和可移植性的 pages 和 document。我列出了 JSTL 一些特别的特点。 1.JSTL 提供了基于标签的遍历,条件以及其他一些功能,这些功能以前或者是 直接在 JSP 中嵌入代码来实现的,或者是使用了自己创建的标签,非标准的标签库, 或者是通过使用 Servlet 来代替 JSP 来实现的。 2.JSTL 使用了 EL(expression language)语法 3.编写自定义标签相对其他一些 JSP 开发任务来说需要更多的精力与经验。 JSTL 通过两种方法来简化这些步骤:首先,如前所述,jstl 能解决很多定制(自定义)的 tags
的需要.(JSTL handles many common needs for custome tags)。其次,JSTL 提供了一 些机制使得编写你自定义的标签更简单,尤其是编写支持 EL 自定义标签的时候。 具体的 JSTL 特性与优点 下面简单的概括 JSTL4 个可用自定义标签库中三个标 签库的一些优点,并且给出了不推荐使用数据库访问标签库(database access library) 的原因。同样我也讨论了使用 EL 的优点。 数据访问标签库( 数据访问标签库(Database access library) ) JSTL 提供了数据访问标签库, 但是我很少用它, 因为我强烈的认为不应该在 JSP 页面内直接访问数据库。 如果在 JSP 中直接的访问数据库将会降低重用, 因为数据库 访问的代码在使用数据库范围标签的 JSP 页面外是不可以被访问到的。在 JSPs 中直 接的进行数据库访问将会加大表示层与数据层之间的耦合。 严格的分割意味着更好的 模块化, 复用性, 以及更容易的满足表现层和数据层之间的规范 (Disciplined separation means more modularity, greater opportunity for reuse, and better opportunities for specialization of presentation and database experts)。.我推荐在 JSTL 的其他三种标签 库可以满足 JSP 开放人员的需求的时候使用这些标签库,但是我不推荐使用 JSTL 的 数据库范围标签库 outside of prototypes and the simplest Web applications。 JSTL 核心标签库 核心标签库(JSTL core tag library) 正像名字一样,JSTL 核心标签库是在 JSTL 四种标签库中最
常用的一种。这个 标签库提供了对 collection 的遍历,条件语句以及其它一些常用的
程序结构。JSTL 核 心标签库可以使得 JSP 开放人员不必编写他们自
己的自定义标签库或者直接在 JSPs 中嵌入 Java 代码。 JSTL XML 标签库(JSTL XML tag library) 标签库( ) 这个标记库提供了一些令人赞叹的且功能强大的 XML 操纵标签和 XSLT 转换标 签。 JSTL formatting 标签库 如果需要在多个国家提供网页和网址,那么国际化(internationalization)对网络 开发项目(
web development projects)来说是一个很大的挑战。JSTL formatting 标签 库为此向 JSP 开发人员提供了一些自定义标签, 可以支持按照特定的区域读写数