<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
    主站蜘蛛池模板: 色www永久免费| 一日本道a高清免费播放| 免费国产污网站在线观看15 | 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲av无码乱码国产精品fc2| 国产免费MV大全视频网站| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲人成网站观看在线播放| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 欧美大尺寸SUV免费| 中文字幕精品三区无码亚洲| 在线免费观看色片| 曰批全过程免费视频免费看| 亚洲人成亚洲人成在线观看| 久久香蕉国产线看免费| 亚洲欧洲日本国产| 日韩在线a视频免费播放| 免费无码国产V片在线观看| 国产亚洲精品岁国产微拍精品| 中文字幕高清免费不卡视频| 亚洲AV无码专区电影在线观看| 亚洲一区二区三区免费在线观看| 亚洲中文字幕无码av永久| 亚洲Av无码乱码在线znlu| 日韩免费在线观看视频| ASS亚洲熟妇毛茸茸PICS| 免费一级毛片清高播放| 国产精品免费高清在线观看| 亚洲人成77777在线观看网| 亚洲精品专区在线观看| 999久久久免费精品播放| 亚洲高清乱码午夜电影网| 国内精品99亚洲免费高清| 国产91免费在线观看| 婷婷国产偷v国产偷v亚洲| 亚洲国产精品无码久久久秋霞2| 91在线品视觉盛宴免费| 中文字幕免费人成乱码中国| 亚洲国产综合第一精品小说| AV在线亚洲男人的天堂| 精品香蕉在线观看免费|