struts2 实现自定义标签

/**
 * lostingz
 * Created on 2015年11月18日
 */
package com.test.web.tags;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ComponentTagSupport;

import com.opensymphony.xwork2.util.ValueStack;

public class TestTag extends ComponentTagSupport {

    private static final long serialVersionUID = 1L;
    private String code;

    /**
     * 获得一个基本类的对象。
     *
     * @param stack
     * @param req
     * @param res
     * @return
     */
    @Override
    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
        return new TestComponent(stack);
    }
     /**
     * 设置标签获取到的code对象。
     * @param code
     */
    public void setCode(String code) {
        this.code = code;
    }

    protected void populateParams() {
        super.populateParams();
        TestComponent testComponent = (TestComponent) component;
        //将code赋值给compnent
        testComponent.setCode(code);
    }

}

 

/**
 * lostingz
 * Created on 2015年11月18日
 */
package com.test.web.tags;

import java.io.IOException;
import java.io.Writer;

import org.apache.struts2.components.Component;
import com.opensymphony.xwork2.util.ValueStack;

public class TestComponent extends Component {

    private String code;

    public TestComponent(ValueStack stack) {
        super(stack);
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public boolean start(Writer writer) {
        boolean flag = true;
        try {
            String result = getInfo(code);
       //输出 writer.write(result); }
catch (IOException e) { e.printStackTrace(); } return flag; } public boolean end(Writer writer, String body) { return super.end(writer, body); } private String getInfo(String code){
     //处理code得到显示的信息
return doSomething(code); } }

配置

<taglib>   
    <tlib-version>2.2.3</tlib-version>   
    <jsp-version>1.2</jsp-version>   
    <short-name>test</short-name>   
    <uri>/testTag</uri><display-name>"test"</display-name>   
        <tag>   
            <name>getCode</name>   
            <tag-class>com.test.web.tags.TestTag</tag-class>    
            <body-content>empty</body-content>       
            <attribute>   
                <name>code</name>   
                <required>false</required>   
                <rtexprvalue>true</rtexprvalue>   
            </attribute>
        </tag>   
</taglib> 

转载于:https://www.cnblogs.com/birkhoff/p/4974647.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值