个 新方法就是 doEndTag(),在这个方法中该标记可以输出内容(在这个例子中是最后修改数 据)到 JSP 页面。
清单 1 中其他的更改更多地与作为一个
JSP 标记的代码有关,而与在一个页面内运行的 scriptlet 没有多大关系。例如,所有的 JSP 标记都应该扩展 JSP 类 javax.servlet.jsp.tagext.TagSupport,这个类为 JSP 标记提供了基本框架。可能您还注 意到 , 该标记返回的 EVAL_PAGE. EVAL_PAGE 是一个预定义的整型常量, 它指示容器处理 页面的剩下部分。另一种选项就是使用 SKIP_PAGE,它将中止 对页面剩下部分的处理。如 果您要将控制转移到另一个页面,例如您要前进(forward)或者重定向(redirect)用户, 那么只需要使用 SKIP_PAGE。剩下来的细节都是与时间戳自身有关的事情。
接下来,编译这个类,并将
LastModifiedTag.class 文件放到一个 WEB-INF/classes 目
录下,注意要放到正确的路径层次结构中。这个路径应该匹 配该标记的包名,包名中的圆 点(.)用斜杠(/)代替。在本例中,目录的路径是基路径(WEB-INF/classes)再加上层 次结构 com/newInstance/site/tags。如果有一个名为 foo.bar.tag.MyTag 的标记,那么 它将被放在 WEB- INF/classes/foo/bar/tag 中。这种路径层次结构确保了 Web 容器在任何 需要装载该标记的时候都能够找到这个类。
创建 TLD 接 下来的一步是创建一个标记库描述符(tag library descriptor ,TLD)文件。TLD 向 容器和任何要使用该标记库的 JSP 页面描述 您的标记库。清单 2 显示了一个非常标准的 TLD,其中只包含了一个标记。当您将更多的标记添加到库中时,TLD 文件的长度和复杂性 将随之增长。
清单 2. 一个标记库描述符
1.0 1.2 site-utils newInstance/taglibs/site-utils
lastModified com.newInstance.site.tags.LastModifiedTag empty TLD 文件顶部的信息应用于整个标记库。在本例中,我提供了一个版本(这对于跟踪某个 标记库的 JSP 创建者拥有哪个版本很有用,尤其是在您需要经常修改标记库的 情况下更是 如此);该标记库所依赖的 JSP 版本;一个为该标记库推荐的前缀;以及用于引用这个标记 库的 URI。注意,我使用了前缀 short-name 作 为 URI 的一部分,这样 比较容易将前缀和 标记库的 URI 看成一个整体。
剩下的信息用于一个特定的标记,这些信息用 tag 元素表示。我指定了该标记的名称、用 于该标记的类(这个类应该被编译好并放在适当的地方,以便容器能够装载),最后还指定 了该标记是否有嵌入的内容。在本例中,标记没有嵌入的内容,因此使用"empty"。
保 存这个文件,并将其放到 WEB-INF/tlds 目录下(您可能需要在您的容器中创建这个目 录)。我将这个文件保存为 site-utils.tld,并在 该标记库的 URI(推荐的前缀)和 TLD 文件本身之间再次创建一个干净的链接。对于这个特定的标记库,要使其可以使用,最后一 步要做的是让您的 Web 应用 知道如何连接一个 JSP 页面中的 URI,如何请求使用一个标记 库。这可以通过应用的 web.xml 文件来做。清单 3 显示了一个非常简单的
web.
xml 片段, 正是 它为我们的标记库做这样的事情。
清单 3. 将一个 URI 与一个标记库链接起来
newInstance/taglibs/site-utils /WEB-INF/tlds/site-utils.tld 包装起来 如果您已经按照上述步骤执行了,那么现在您应该能够在 JSP 页面中引用新标记了。清 单 4 向我们展示了新改进的 footer.jsp,这个文件中现在完全没有 scriptlet,也没有指 向具有 scriptlet 的 JSP 页面的引用。
清单 4. 使用新的标记库
<%@ taglib prefix="site-utils" uri="newInstance/taglibs/site-utils" %>
-
相关文章
-
最新文件
关于网学 |
万能工具 |
在线交流 |
会员中心 |
查询论文 |
招聘说明 |
精品资源 |
专题论文 |
会员中心 |
联系方式 |
下载目录
论文目录
Copyright 2005-2018 www.myeducs.cn All Rights Reserved 版权所有·网学网 提供大量原创论文 参考论文 论文资料 源代码 管理及投稿 E_mail:3710167@qq.com
郑重声明: 本网站论文均来自互联网,由本站会员上传或下载,仅供个人交流、学习、参考之用,版权归原作者所有
请下载完后24小时之内删除,任何人不得大幅抄录、在期刊上发表或作为商业之用。如涉及版权纠纷,本网站不承担任何法律及连带责任。
|