`
lucene321
  • 浏览: 178843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

taglib的简单过程.

    博客分类:
  • java
阅读更多
    1. taglib的编写

taglib用于将呈现逻辑进行封装。
它必须继续自tagsupport类。
下面是一个简单的例子:

package org.topxp.taglib;

import java.io.ioexception;
import java.util.date;
import javax.servlet.jsp.jspexception;
import javax.servlet.jsp.jspwriter;
import javax.servlet.jsp.tagext.tagsupport;

public class outtag extends tagsupport {

     /**

     * @see javax.servlet.jsp.tagext.tagsupport#doendtag()

     */

    @override

    public int doendtag() throws jspexception {

        jspwriter out = this.pagecontext.getout();
        try {
            out.println("当前的时间是:" new date());
        } catch (ioexception e) {
            throw new jspexception(e);
        }
        return eval_page;
    }
    /**

     * @see javax.servlet.jsp.tagext.tagsupport#dostarttag()

     */

    @override
    public int dostarttag() throws jspexception {
        return super.dostarttag();
    }
}

2. tld文件

<?xml version="1.0" encoding="iso-8859-1" ?>

<!doctype taglib public "-//sun microsystems, inc.
//dtd jsp tag library 1.2//en"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>diego</short-name>
    <tag>
       <name>out</name>
       <tag-class>org.topxp.taglib.outtag</tag-class>
       <body-content>empty</body-content>
       <attribute>
           <name>name</name>
           <required>false</required>
           <rtexprvalue>false</rtexprvalue>
       </attribute>
    </tag>
</taglib>

3. taglib的部署

3.1 简单部署

3.1.1 方式一

编写tld文件,并且放置到web-inf目录或创建子目录,然后在jsp中,使用taglib指令,指定uri即可:
< %@ taglib divfix=”topxp” uri=”/web-inf/mytaglib.tld” %>
这个指令,直接指向一个tld文件。

3.1.2 方式二

也可以在web.xml中用taglib-uri和taglib-location标记来定义它的uri和位置的映射,然后在jsp中指定uri的时候,就直接使用在web.xml中定义的uri即可,这个就不举例子了。

3.2 打包部署
你也可以将taglib打成jar包,这个时候,你的taglib描述文件(tld文件),必须被放置在jar文件内的meta-inf目录(或子目录)下。你可以在这个目录下,放置多个tld文件。

假如将taglib打包,这个jar包必须被放置在web-inf/lib目录下。在jar包的meta-inf目录下的tld文件,都可以被自动发现,不需要显式的定义其位置。

3.2.1
jsp使用方式一:用uri直接指定jar文件的位置

jsp中可以使用下面的指令来指定tld文件的位置:

< %@ taglib divfix=”topxp” uri=”/web-inf/lib/topxptaglib.jar” %>

在这种情况下,因为没有直接指定tld文件的位置,所以,tld文件必须遵守一定的命名规则。规则就是:

tld文件必须命名为:taglib.tld。这样,在meta-inf目录下,只能放置一个tld文件,无法支持多个tld文件。

3.2.2
jsp使用方式二:使用定制的uri

假如需要在一个jar包中包含多个tld文件,你必须使用某种方式来区分这些tld文件,这种方式就是:

在tld文件中,用< uri >标记来区别不同的tld文件。如,可以加入下面的< uri >标记进topxptaglib.jar中的tld文件:< uri >http://www.topxp.org/taglib</uri >

在我们的例子中,假设命名为topxp.tld,下面就是topxp.tld文件的内容,请注重添加了< uri >标记:

<?xml version="1.0" encoding="iso-8859-1" ?>

<!doctype taglib public "-//sun microsystems, inc.
//dtd jsp tag library 1.2//en"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>

    <tlib-version>1.0</tlib-version>

    <jsp-version>1.2</jsp-version>

    <short-name>diego</short-name>

    <uri>http://www.topxp.org/taglib</uri>

    <tag>

       <name>out</name>

       <tag-class>org.topxp.taglib.outtag</tag-class>

       <body-content>empty</body-content>

       <attribute>

           <name>name</name>

           <required>false</required>

           <rtexprvalue>false</rtexprvalue>

       </attribute>

    </tag>

</taglib>

这个时候,你可以将你的tld文件命名为其它的名字,如topxpabc.tld。

在jsp中,需要使用下面的方式来定义:

< %@ taglib divfix=”topxp” uri=”http://www.topxp.org/taglib” %>

可以看到,在这样的情况下,我们可以在一个jar包中包含任意多个tld文件。  
0
1
分享到:
评论

相关推荐

    pager-taglib使用指南 .txt

    ### pager-taglib 使用指南 ...通过以上介绍可以看出,`pager-taglib` 为开发者提供了一种简单而强大的分页解决方案,极大地提高了开发效率。在实际项目中,根据具体的需求调整参数即可轻松实现多样化的分页效果。

    pager-taglib-2.0

    5. `&lt;pager:params&gt;`:允许传递额外的请求参数,这对于在分页过程中保持其他查询条件不变非常有用。 三、使用步骤 1. 添加依赖:在项目中引入`pager-taglib-2.0.war`,通常将其部署到应用服务器的lib目录下,或者...

    taglib 原理和实现.

    `TagSupport` 是一个抽象类,它简化了标签开发过程,提供了通用的方法如 `doStartTag()`, `doEndTag()` 等,这些方法在标签生命周期的不同阶段被调用。而 `BodyTagSupport` 则继承自 `TagSupport`,并添加了对标签体...

    json-taglib0.4.1jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间的数据传输,因为它的结构简单、易于读写、对人类可读性强。而`json-taglib`是针对Java的一个标签库,它提供了在JSP页面上...

    pager-taglib 分页框架+附带例子

    `pager-taglib` 是一个用于网页分页功能的Java标签库,它简化了在JSP页面中实现分页展示数据的过程。这个框架旨在提高开发效率,提供易用的API和直观的标签语法,使得开发者无需编写大量的HTML和Java代码就能实现...

    pager-taglib分页标签

    `pager-taglib`是一个专为JSP页面设计的分页标签库,它简化了在JSP中实现分页的过程。下面将详细介绍`pager-taglib`的安装、使用方法以及其核心知识点。 ### 1. `pager-taglib`简介 `pager-taglib`是一个开源的JSP...

    taglib(struts2标签).doc

    4.1 节主要讨论了通用标签,这些标签在页面呈现时控制代码的执行过程,并可以从 Action 或值堆栈中获取数据。下面我们将详细探讨几个重要的通用标签: 1. **If 标签**: If 标签用于实现基本的条件控制,与传统的...

    Taglib自定义标签库

    在这个例子中,“helloTag”继承了`TagSupport`类,这是JSP提供的一个基础标签类,简化了标签的开发过程。在`doStartTag()`方法中,标签的开始逻辑被定义;而在`doEndTag()`方法中,则定义了标签结束时的行为。具体...

    Qt taglib写的音乐播放器

    其信号与槽机制使得事件处理变得简单,提高了代码的可维护性和可扩展性。此外,Qt的跨平台特性允许代码在多种操作系统上运行,减少了针对不同平台的适配工作。 **Taglib库** Taglib库是音乐播放器开发中的关键部分...

    Java标签库—Taglib.pdf

    文档的作者鼓励读者反馈在实践过程中遇到的问题,并承诺会不断更新和完善文档内容。 ### 环境配置 文档的作者提到,本书的所有程序都是在Eclipse2.1.2、lomboz2.1.2和Tomcat4.1.27/Tomcat5.0.16下调试完成的。同时...

    json-taglib 使用方法

    通过简单的标签语句即可实现JSON对象及数组的构建,大大简化了JSON数据的生成过程。 #### 二、安装与配置 为了使用json-taglib,首先需要将json-taglib.jar添加到项目的`WEB-INF/lib`目录下。接下来,在JSP页面中...

    pager-taglib实现用户信息分页

    "pager-taglib实现用户信息分页"这个项目提供了一个简单的分页解决方案,尤其适用于初学者学习。在这个实例中,开发者使用了PagerTaglib库,这是一个基于JSP自定义标签库,用于方便地在网页上实现数据的分页展示。 ...

    最好的taglib自学网页

    在taglib的学习过程中,你将接触到以下重要知识点: 1. JSP标签库的概念:理解标签库是JSP中的一个组件,它提供了一种在页面中使用预定义功能的方法,类似于函数但更方便于页面处理。 2. TLD文件:这是描述标签库...

    pager-taglib分页要点

    ### pager-taglib分页...综上所述,`pager-taglib`为JSP项目中的分页功能提供了一套简单而强大的解决方案。通过遵循上述步骤和建议,开发者可以快速地在自己的项目中集成分页功能,同时保持代码的清晰和维护的便利。

    pager-taglib分页例子

    `pager-taglib`是一个专为JSP页面设计的分页标签库,它简化了在Web应用中实现分页的过程。在这个“pager-taglib分页例子”中,我们将探讨如何使用`pager-taglib`进行高效且简洁的分页实现。 首先,`pager-taglib`...

    分页处理框架pager-taglib

    总结,`pager-taglib`作为一个简单的分页处理框架,通过提供预定义的JSP标签,极大地简化了分页功能的实现。对于初学者和快速开发来说,这是一个非常实用的工具。通过深入理解和实践`pageDemo`,可以快速掌握在实际...

    将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程.pdf

    3. **JSP Taglib 实现**:在 JSP 页面上直接使用 Shiro 的标签库进行权限控制。 通过以上方式,开发者可以根据项目需求选择合适的授权策略,并结合自定义 Realm 实现与应用的数据库或其他数据源的交互,以实现精细...

    pager-taglib分页

    `pager-taglib`是一个专为JSP页面设计的分页标签库,它简化了在前端实现分页的过程。在这个小例子中,我们将深入探讨如何使用`pager-lib`插件来实现分页功能。 首先,`pager-taglib`是基于JSTL(JavaServer Pages ...

Global site tag (gtag.js) - Google Analytics