`
xieliang43
  • 浏览: 22733 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

struts2自定义标签

阅读更多
摘自于网络,供自己参考。

<?xml version="1.0" encoding="UTF-8"?><!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>tag</short-name>
    <uri>/tag</uri>
    <display-name>a demo taglib</display-name>
    <description>
        <![CDATA["some description"]]>
    </description>
    <tag>
        <name>head</name>
        <tag-class>com.demo.ui.HeadTag
        </tag-class>
        <body-content>empty</body-content>
        <description>
            <![CDATA[some description]]>
        </description>
    </tag>
</taglib>


编写HeadTag.java类:

public class HeadTag extends AbstractUITag {

    @Override
    public Component getBean(ValueStack arg0, HttpServletRequest arg1,
            HttpServletResponse arg2) {
        
        return new Head(arg0,arg1,arg2);
    }

}


编写Head.java类:

public class Head extends UIBean {

    public Head(ValueStack stack, HttpServletRequest request,
            HttpServletResponse response) {
        super(stack, request, response);
    }

    @Override
    protected String getDefaultTemplate() {
        return "head";
    }

}


编写head.ftl模板文件:

<div>head text</div>
<script type="text/javascript" src="<@s.url value='/struts/com/demo/javascript/script.js' />"></script>


在web.xml中web-app节点下添加如下内容(我使用的是servlet 2.4):

   
<jsp-config>
        <taglib>
            <taglib-uri>/WEB-INF/tag.tld</taglib-uri>
            <taglib-location>/tag</taglib-location>
        </taglib>
    </jsp-config>


最后就可以在页面中使用这个自定义标签了page.jsp:

<%@ taglib prefix="tag" uri="/tag" %>  

……

<tag:head />



转了一大圈,才算转出来,下面我来讲下这个流程:

1.page.jsp里面taglib里面的属性prefix是指下面的标签都是以tag打头,比如:<tag:head/>,属性uri是指web.xml里面映射的路径/WEB-INF/tag.tld,也可以跳过web.xml,直接在page.jsp里面的属性uri使用/WEB-INF/tag.tld

2.像tag:head里面的属性,比如head,都是在tag.tld里面定义的,如果使用head,会找到类com.demo.ui.HeadTag,而类HeadTag又使用到了类com.demo.ui.Head。注意这里一定要这么写,直接在tag.tld里面定位类com.demo.ui.Head是不行的

3.com.demo.ui.Head类里重载了方法getDefaultTemplate,返回head的话,就意味着去找head.ftl模板中,这里我把模板放到template.xhtml包里,struts2会自动找到这个模板

4.如果需要把自定义的标签打成jar包,需要把类com.demo.ui.HeadTag,类com.demo.ui.Head,template.xhtml.head.ftl,/WEB-INF/tag.tld打到jar包即可,需要注意的是tag.tld和其他文件不同,需要放到META-INF文件夹下,跟MANIFEST.MF同级,应用会自动找到这个自定义标签,不需要在web.xml文件里描述了
分享到:
评论

相关推荐

    struts2 自定义标签

    通过struts2 自定义标签实例,可以用这个对项目中的实现自定义标签。从而减少代码。

    Struts2自定义标签

    Struts2自定义标签,附带配置文件及后台代码,从工作当中整理

    struts2自定义标签案例详解

    Struts2中实现自定义标签很简单,主要分为3步: 1.创建taglib文件(.tld),编写标签声明。 2.编写自定义标签类。 3.在页面中使用标签。 下面以一个自定义的分页标签为例,进行说明。 其实,开发自定义标签并不...

    Struts2自定义分页标签

    Struts2自定义分页标签很详细了,新手可以少走弯路,节约时间 资源包括了后台如何操作。

    基于struts2 自定义标签 分页

    基于struts2的自定义分页标签实现的一个demo,连接数据库为Oracle

    Struts2 自定义标签

    附件是一个简单的自定义标签,提供给大家参考,例子很简单,希望对大家有帮助,基于eclipse 开发

    tag struts2的自定义标签实例

    tag struts2 自定义标签 实例 tag struts2的自定义标签实例

    Struts 2 自定义标签分页

    Struts 2 自定义标签分页,有简单上下分页和数字分页

    struts实现自定义标签

    struts实现自定义标签

    STRUTS自定义标签

    STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS自定义标签STRUTS...

    struts1自定义标签

    自定义标签,直接代码,直接模仿开发即可 public class ButtonTag extends AttributeTag { //tld中定义的属性 public String label; public String url; public String click; public String confirm; public ...

    Struts2 自定义下拉框标签Tag(源码)

    自定义标签主要包括三个步骤: 1、编写java类,继承TagSupport类; 2、创建tld文件,影射标签名和标签的java类; 3、jsp页面引入tld。 博文地址:http://blog.csdn.net/itmyhome1990/article/details/50718282

    struts自定义标签详解

    举例解说Bean Tags,HTML Tags 以及Logic Tags的使用方法。

    struts2的自定义标签

    struts2的自定义标签写法,并且有一个例子代码。

    Struts2_自定义标签的方法

    Struts2_自定义标签的方法

Global site tag (gtag.js) - Google Analytics