<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 24,  comments - 25,  trackbacks - 0
    聲明標簽
    \WebRoot\WEB-INF\tangs.tld
    <?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>2.2.3</tlib-version>
        
    <jsp-version>1.2</jsp-version>
        
    <short-name>tangs</short-name>
        
    <uri>/tangs</uri>
        
    <display-name>"Tangs Tags"</display-name>
        
    <tag>
            
    <name>button</name>
            
    <tag-class>com.tag.button.ButtonTag</tag-class>
            
    <body-content>empty</body-content>
            
    <attribute>
                
    <name>name</name>
                
    <required>true</required>
                
    <rtexprvalue>true</rtexprvalue>
            
    </attribute>
        
    </tag>
    </taglib>

    定義標簽接受到的值
    \com\tag\button\
    Button.java
    package com.tag.button;

    public class Button {
        
    private String parent;

        
    public Button() {
        }

        
    public String getParent() {
            
    return parent;
        }

        
    public void setParent(String parent) {
            
    this.parent = parent;
        }

    }

    處理標簽
    \com\tag\button\Buttons.java
    package com.tag.button;

    import java.io.IOException;
    import java.io.Writer;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    import org.apache.struts2.components.Component;

    import com.opensymphony.xwork2.util.ValueStack;

    public class Buttons extends Component {

        
    private String name;

        
    public String getName() {
            
    return name;
        }

        
    public void setName(String name) {
            
    this.name = name;
        }

        
    public Buttons(ValueStack arg0) {
            
    super(arg0);
        }

        @Override
        
    public boolean start(Writer arg0) {
            
    boolean result = super.start(arg0);
            
    try {
                StringBuilder str 
    = new StringBuilder();
                
    boolean isValid = true;
                
                Button bt 
    = (Button) this.getStack().findValue(name);
                isValid 
    = bt != null ? true : false;
                
                
    if (isValid) {
                    str.append(
    "<input type=\"submit\" value=\"web.button.query\" method=\"search\"/>");
                }
                arg0.write(str.toString());
            } 
    catch (IOException ex) {
                Logger.getLogger(Trees.
    class.getName()).log(Level.SEVERE, null, ex);
            }
            
    return result;
        }

    }

    調用標簽
    \com\tag\button\ButtonTag.java
    package com.tag.button;

    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 ButtonTag extends ComponentTagSupport {
        
    private static final long serialVersionUID = 1L;
        
        
    private String name;

        
    public void setName(String name) {
            
    this.name = name;
        }

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

        
    protected void populateParams() {
            
    super.populateParams();
            Buttons buttons 
    = (Buttons) component;
            buttons.setName(name);
        }
    }

    測試
    \com\tag\button\ButtonAction.java
    package com.tag.button;

    import com.opensymphony.xwork2.ActionSupport;

    public class ButtonAction extends ActionSupport {

        
    private static final long serialVersionUID = 1L;

        
    private Button names;

        
    public Button getNames() {
            
    return names;
        }

        
    public void setNames(Button names) {
            
    this.names = names;
        }

        @Override
        
    public String execute() throws Exception {
            Button btn 
    = new Button();
            btn.setParent(
    "1");

            names 
    = btn;
            
    return SUCCESS;
        }

    }

    備忘
    接受對象數組的處理:
    private Tree[] names;

        
    public Tree[] getNames() {
            
    return names;
        }

        
    public void setNames(Tree[] names) {
            
    this.names = names;
        }

        @Override
        
    public String execute() throws Exception {
            Tree[] trees 
    = new Tree[5];
            names 
    = trees;
            
            
    return SUCCESS;
        }

    public boolean start(Writer arg0) {
            
    boolean result = super.start(arg0);
            
            
    try {
                StringBuilder str 
    = new StringBuilder();
                
    boolean isValid = true;
               

                Tree[] trees = (Tree[]) this.getStack().findValue(name);
                isValid 
    = trees != null ? true : false;
                if (isValid) {
                    str.append(
    "");
                }

                arg0.write(str.toString());
            } 
    catch (IOException ex) {
                Logger.getLogger(Trees.
    class.getName()).log(Level.SEVERE, null, ex);
            }
            
            
    return result;
        }

    jsp頁面的調用:
    <%@taglib uri="/tangs" prefix="tangs"%>
    <html>
        
    <body>
            
    <tangs:button name="names"/>
        
    </body>
    </html>

    沒時間詳細寫了,不過應該看得懂。
    posted on 2008-11-06 18:48 Jarry 閱讀(7119) 評論(3)  編輯  收藏 所屬分類: Struts2.x
    主站蜘蛛池模板: 99在线精品视频观看免费| 日韩免费电影网址| 黄a大片av永久免费| 亚洲人成片在线观看| 欧洲人成在线免费| 亚洲情a成黄在线观看动漫尤物| 中文字幕永久免费| 精品久久久久久亚洲| 最近国语视频在线观看免费播放 | 国产免费人成视频在线播放播| 午夜电影免费观看| 亚洲.国产.欧美一区二区三区| 国产资源免费观看| 国产亚洲精品91| 亚洲午夜福利精品无码| 国产精品小视频免费无限app| 亚洲精品卡2卡3卡4卡5卡区| 中文字幕一区二区三区免费视频| 亚洲精品无码鲁网中文电影| 久久久久久久岛国免费播放| 亚洲人成黄网在线观看| 成人a免费α片在线视频网站| 国产精品亚洲一区二区三区久久 | 一级毛片免费观看不卡视频| 亚洲精品国产成人中文| 永久免费av无码网站韩国毛片 | 亚洲情A成黄在线观看动漫软件| 狼友av永久网站免费观看| 久香草视频在线观看免费| 亚洲乱码无码永久不卡在线| 69视频在线观看高清免费| 亚洲最大天堂无码精品区| 亚洲国产精品一区二区第一页免| 成全在线观看免费观看大全| 亚洲国产成人精品无码一区二区| 亚洲av成人一区二区三区在线观看| 免费看少妇高潮成人片| 亚洲色最新高清av网站| 国产亚洲精久久久久久无码77777| 亚洲电影免费观看| 特级av毛片免费观看|