`
jiujiubuzui
  • 浏览: 73323 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts自定义标签tag

 
阅读更多

1.首先需要在web.xml中添加tld
<taglib>
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
 <taglib>
  <taglib-uri>/WEB-INF/gfs.tld</taglib-uri>
  <taglib-location>/WEB-INF/gfs.tld</taglib-location>
 </taglib>

2.其次需要新建gfs.tld

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>hyt</shortname>
<uri>http://jakarta.apache.org/struts/tags-html</uri>

<tag>
<name>optionDict</name>
<tagclass>com.alipay.gfs.web.jsptag.OptionDictValue</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
 <name>codeId</name>
 <required>true</required>
 <rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
 <name>subcodeId</name>
 <required>false</required>
 <rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
 <name>subsubcodeId</name>
 <required>false</required>
 <rtexprvalue>true</rtexprvalue>
</attribute>
</tag>

<tag>
<name>optionEaccount</name>
<tagclass>com.alipay.gfs.web.jsptag.OptionEaccountValue</tagclass>
<bodycontent>JSP</bodycontent>
</tag>

</taglib>

3.再次新建OptionDictValue

package com.alipay.gfs.web.jsptag;

import java.util.List;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.Constants;
import org.apache.struts.taglib.html.OptionsCollectionTag;
import org.apache.struts.taglib.html.SelectTag;
import org.apache.struts.util.RequestUtils;
import org.apache.struts.util.ResponseUtils;
import com.alipay.gfs.common.GlobalVar;
import com.alipay.gfs.dao.DictDao;
import com.alipay.gfs.domain.Dict;

public class OptionDictValue extends OptionsCollectionTag {
    protected String codeId = "";
    protected String subcodeId = null;
    protected String subsubcodeId = null;
    
    public String getCodeId() {
  return codeId;
 }
 public void setCodeId(String codeId) {
  this.codeId = codeId;
 }
 public String getSubcodeId() {
  return subcodeId;
 }
 public void setSubcodeId(String subcodeId) {
  this.subcodeId = subcodeId;
 }
 public String getSubsubcodeId() {
  return subsubcodeId;
 }
 public void setSubsubcodeId(String subsubcodeId) {
  this.subsubcodeId = subsubcodeId;
 }
 public int doStartTag() throws JspException {

        // Acquire the select tag we are associated with
        SelectTag selectTag = (SelectTag) pageContext
                .getAttribute(Constants.SELECT_KEY);

        if (selectTag == null) {
            JspException e = new JspException(messages
                    .getMessage("optionsCollectionTag.select"));
            RequestUtils.saveException(pageContext, e);
            throw e;
        }

        DictDao dao = (DictDao)GlobalVar.wac.getBean("dictDao");
        Dict dict = new Dict();
        dict.setCodeId(codeId);
        dict.setSubcodeId(subcodeId);
        dict.setSubsubcodeId(subsubcodeId);
        List lstCode = dao.getCodes(dict);
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<lstCode.size();i++)
        {
         Dict dct = (Dict)lstCode.get(i);
             addOption(sb, dct.getCodeName(), dct.getCodeValue(), selectTag
                     .isMatched(dct.getCodeValue()));
        }
        ResponseUtils.write(pageContext, sb.toString());
        return SKIP_BODY;
    }
}

 4.使用标签
<html:select property="revenueTypeTwo">
        <html:option value="">请选择</html:option>
        <gfs:optionDict codeId="102" subsubcodeId="notnull"></gfs:optionDict>
</html:select>

分享到:
评论

相关推荐

    struts实现自定义标签

    在 Struts 中,我们可以通过实现 `org.apache.struts.taglib.Tag` 接口来创建自定义标签。 二、创建自定义标签库 1. 创建 Tag 类:首先,我们需要创建一个 Java 类,该类继承自 `org.apache.struts.taglib.Tag` 或...

    struts2 自定义标签

    在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...

    Struts2自定义标签

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

    tag struts2的自定义标签实例

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

    struts1自定义标签

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

    struts2自定义标签案例详解

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

    基于struts2 自定义标签 分页

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

    struts自定义标签(真的不错,一点都不夸张)

    本教程将深入探讨Struts自定义标签的使用,以及它们如何帮助我们构建更加模块化和可维护的Web应用。 首先,让我们了解什么是Struts自定义标签。在JSP中,我们可以使用内建标签,如`&lt;jsp:include&gt;`、`&lt;c:forEach&gt;`等...

    struts自定义标签

    Struts自定义标签是Java Web开发中的一种常见技术,它扩展了标准的JSP标签库,使得开发者可以创建更符合业务逻辑、可复用且易维护的页面代码。在Struts框架中,自定义标签是实现MVC设计模式的重要组成部分,它们提供...

    struts中自定义的tag的Java类中如何获得session

    本篇文章将详细探讨如何在Struts自定义标签的Java类中获取`HttpSession`对象,并对其应用场景进行深入分析。 ### 一、Struts自定义标签简介 #### 1.1 Struts自定义标签的作用 在Web应用开发中,经常需要在JSP页面...

    Struts2 自定义标签

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

    自定义标签代替Struts标签实现分页

    然而,有时候我们可能需要根据项目需求定制特定的功能,比如这里的"自定义标签代替Struts标签实现分页"。下面将详细阐述这个主题。 一、自定义标签的原理 自定义标签是JavaServer Pages (JSP) 技术的一个强大特性,...

    struts2的自定义标签例子

    下面将详细探讨如何在Struts2中创建和使用自定义标签。 首先,自定义标签是JSP标准标签库(JSTL)的扩展,允许我们定义自己的标签来简化页面编码。在Struts2中,自定义标签通常通过Action类和结果视图来与后台业务...

    struts2自定义标签

    在Struts2中,自定义标签的实现通常包括以下步骤: 1. **定义TLD(Tag Library Descriptor)文件**: TLD文件是XML格式的,用于描述自定义标签的属性、行为以及它们之间的关系。在这个例子中,我们为分页标签添加...

    自定义标签+struts2标签控制访问链接权限.zip

    在IT领域,自定义标签是Java Web开发中的一个重要概念,特别是在使用JSP和Struts2框架时。自定义标签能够帮助我们创建可重用、可维护的代码,提高开发效率,使得视图层的逻辑更加清晰。本教程资料集主要探讨了如何...

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

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

    自定义struts2标签

    在Struts2中,自定义标签是扩展其功能和实现个性化界面的重要手段。通过自定义标签,开发者可以构建更加符合业务需求的视图层,提高代码的可读性和可维护性。本文将深入探讨如何在Struts2中自定义标签,并利用栈顶...

    Struts 2 自定义标签分页

    1. **创建自定义标签库**:首先,我们需要定义一个TLD(Tag Library Descriptor)文件,例如`struts-tags.tld`,在这个文件中声明我们的分页标签。TLD文件定义了标签的名字、属性以及对应的Java类。 2. **编写Java...

Global site tag (gtag.js) - Google Analytics