`
xieliang43
  • 浏览: 23305 次
  • 性别: 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自定义标签的概念 自定义标签是JSP的一种扩展,允许...

    Struts2自定义标签

    自定义标签是Struts2框架中的一个重要特性,它允许开发者创建自己的标签库,以更直观、易读的方式在JSP页面中处理业务逻辑。下面将详细介绍Struts2自定义标签的相关知识点。 首先,理解自定义标签的作用。在传统的...

    struts2自定义标签案例详解

    在Struts2中,自定义标签的实现是提升可重用性和简化视图层代码的一个重要特性。下面我们将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理。 自定义标签的创建主要涉及以下三个步骤: 1. **创建taglib...

    Struts2 自定义标签

    在Struts2中,自定义标签是开发者扩展框架功能和简化视图层编码的重要手段。自定义标签允许将复杂的逻辑封装到可重用的组件中,提高代码的可读性和可维护性。 在Struts2中创建自定义标签,通常涉及以下几个步骤: ...

    Struts2自定义分页标签

    4. **创建分页标签库**:Struts2支持自定义标签,你可以创建一个`.tld`文件来定义分页标签。标签库应该包含开始、结束、上一页、下一页等标签,以便在视图层中方便地使用。 5. **实现标签处理类**:对应的Java类...

    基于struts2 自定义标签 分页

    自定义标签是Struts2的一个重要特性,允许开发者扩展框架的功能,提供更友好的界面元素。在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与...

    Struts 2 自定义标签分页

    本篇文章将深入探讨如何在Struts 2中实现自定义标签进行分页,包括简单的上下分页和数字分页。 首先,我们需要理解分页的基本概念。分页是指将大量数据分成若干小部分,每次只显示一部分,通过翻页来查看其他部分。...

    struts实现自定义标签

    在 Struts 中,自定义标签是提供一种灵活的方式,使得视图层(通常为 JSP 页面)能够更好地与业务逻辑交互,从而提高代码的可读性和可维护性。本文将深入探讨如何在 Struts 中实现自定义标签。 一、自定义标签概述 ...

    tag struts2的自定义标签实例

    在Struts2框架中,自定义标签是扩展和优化应用功能的重要手段,它允许开发者创建符合业务逻辑且可重用的视图组件。本实例将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理和步骤。 首先,自定义标签在...

    STRUTS自定义标签

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

    Struts2_自定义标签的方法

    ### Struts2自定义标签详解 #### 一、引言 在Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。其中,自定义标签是提高代码复用性和增强页面展示效果的重要手段。本文将深入探讨如何在Struts2中创建...

    Struts2分页-自定义标签-类似百度分页

    在Struts2中,自定义标签可以用来扩展JSP页面的功能,使其能够更好地与后台业务逻辑交互。 自定义标签的实现通常分为以下几个步骤: 1. **创建标签库**:定义一个XML文件(如struts-tags.xml),用于声明自定义...

    struts1自定义标签

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

    struts2的自定义标签

    自定义标签是Struts2的一个强大特性,允许我们扩展框架的功能,以满足特定项目的需求。在这个例子中,我们将深入理解如何在Struts2中创建一个自定义的`gageTextField`标签。 1. **创建UIBean(UI组件)** UIBean,...

    struts2自定义结果类型demo

    本示例"struts2自定义结果类型demo"旨在演示如何在Struts2中创建并使用自定义结果类型。首先,我们需要了解Struts2的结果类型工作原理: 1. **默认结果类型**: - Struts2提供了一些内置的结果类型,如`dispatcher...

Global site tag (gtag.js) - Google Analytics