var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>
<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

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

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

    jutleo
    歡迎走進(jìn)有風(fēng)的地方~~
    posts - 63,  comments - 279,  trackbacks - 0
    此文主要來(lái)自m.tkk7.com/Max的實(shí)例

    Struts 2.0
    支持更高級(jí)的POJO訪問(wèn),先定義一個(gè)User.java類。把usernamepassword屬性,從Login類中分離出來(lái),它可以使系統(tǒng)結(jié)構(gòu)更清晰,對(duì)開(kāi)發(fā)多層系統(tǒng)尤其有用。


    User.java
    package com.bulktree.struts2;

    public class User {
        
    private String username;
        
    private String password;
        
    public String getUsername() {
            System.out.println(
    "******getUsername()******");
            
    return username;
        }

        
    public void setUsername(String username) {
            System.out.println(
    "*******setUsername()********");
            
    this.username = username;
        }

        
    public String getPassword() {
            System.out.println(
    "******getPassword()*******");
            
    return password;
        }

        
    public void setPassword(String password) {
            System.out.println(
    "******setPassword()*********");
            
    this.password = password;
        }

    }

    login2.jsp
    <s:form action="login2" method="post">
            
    <s:textfield name="user.username" label="USERNAME" tooltip="Enter Your UserName"></s:textfield>
            
    <s:password name= "user.password" label="PASSWORD" tooltip="Enter Your PassWord"></s:password>
            
    <s:submit label="login"></s:submit>
        
    </s:form>
    struts.xml文件中action配置:
    <action name="login2" class="com.bulktree.struts2.LoginAction2">
                
    <result name="success">/welcome.jsp</result>
                
    <result name="input">/login2.jsp</result>
            
    </action>
    LoginAction2.java:
    package com.bulktree.struts2;

    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction2 extends ActionSupport {
        
        
    private User user;
        
    private String message;
        
        
    public void setUser(User user) {
            System.out.println(
    "********setUser()***********");
            
    this.user = user;
        }

        
        
    public User getUser() {
            System.out.println(
    "*********getUser()*************");
            
    return user;
        }


        
    public String getMessage() {
            System.out.println(
    "************getMessage()********");
            
    return message;
        }

        
        @Override
        
    public String execute() throws Exception {
            System.out.println(
    "*****execute()******");
            
    if("bulktree".equals(user.getUsername()) && "oakertree".equals(user.getPassword())) {
                message 
    = "Welcome, " + user.getUsername();
            }
     else {
                message 
    = "Error!";
            }

            
    return ActionSupport.SUCCESS;
            
        }

        @Override
        
    public void validate() {
            System.out.println(
    "******validate()******");
            
    if(null == user.getUsername() || user.getUsername().length() < 5{
                
    this.addFieldError("username","USERNAME ERROR");
            }

            
    if(null == user.getPassword() || user.getPassword().length() < 5{
                
    this.addFieldError("password","PASSWORD ERROR");
            }

        }

        
    }

    welcome.jsp:
    YOUR USERNAME:<FONT size="5" color="red"><s:property value="user.username"/></FONT><br>
        YOUR PASSWORD:
    <FONT size="5" color="red"><s:property value="user.password"/></FONT><br>
    控制臺(tái)輸出及分析:
    *********getUser()*************  //得到User類的實(shí)例
    ********setUser()***********  //執(zhí)行setUser(),準(zhǔn)備賦值操作
    ******setPassword()*********  //set賦值操作,此時(shí)是真正的賦值
    *********getUser()*************  //得到User類的實(shí)例
    *******setUsername()********  //set賦值操作,此時(shí)是真正的賦值
    以上有struts2框架自動(dòng)執(zhí)行
    ******validate()******  //表單驗(yàn)證
    ******getUsername()******  //表單驗(yàn)證時(shí)調(diào)用get方法(判斷username)
    ******getUsername()******  //表單驗(yàn)證時(shí)第二次調(diào)用get方法(判斷username)
    ******getPassword()******* //表單驗(yàn)證時(shí)調(diào)用get方法(判斷password)
    ******getPassword()*******  //表單驗(yàn)證時(shí)第二次調(diào)用get方法(判斷password)
    *****execute()******  //業(yè)務(wù)邏輯
    ******getUsername()******  //調(diào)用get方法
    ******getPassword()*******  //調(diào)用get方法
    一下由Struts2框架自動(dòng)執(zhí)行
    *********getUser()************* //得到User類的實(shí)例
    ******getUsername()******  //自動(dòng)執(zhí)行g(shù)et方法
    ********getUser()*************  //得到User類的實(shí)例
    ******getPassword()*******  //自動(dòng)執(zhí)行g(shù)et方法

    我們可以把類的屬性分離出來(lái)實(shí)現(xiàn)系統(tǒng)架構(gòu)清晰、明了。


    posted on 2007-12-29 20:20 凌晨風(fēng) 閱讀(2871) 評(píng)論(0)  編輯  收藏 所屬分類: Java學(xué)習(xí)筆記

    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(11)

    我參與的團(tuán)隊(duì)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    新聞分類

    新聞檔案

    收藏夾

    圍脖

    最新隨筆

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 美女视频黄频a免费| 亚洲人成伊人成综合网久久| 免费国产草莓视频在线观看黄| 一二三四免费观看在线视频中文版 | 在线视频免费国产成人| 亚洲中文字幕日本无线码| 99久久这里只精品国产免费| 亚洲剧情在线观看| 在线免费观看一级毛片| 亚洲人成欧美中文字幕| 97无码免费人妻超级碰碰夜夜| 又黄又爽一线毛片免费观看| 亚洲s码欧洲m码吹潮| 国产免费啪嗒啪嗒视频看看| 国产亚洲精品美女久久久久| 亚洲国产av无码精品| www永久免费视频| 亚洲精品国产精品乱码视色| 99精品视频免费在线观看| 亚洲a级成人片在线观看| 在线观看免费宅男视频| 特黄aa级毛片免费视频播放| 国产gv天堂亚洲国产gv刚刚碰| 国产亚洲中文日本不卡二区| 国产又黄又爽又刺激的免费网址 | 在线日本高清免费不卡| 亚洲视频日韩视频| 成年女人毛片免费播放人| 羞羞视频免费网站日本| 亚洲男人天堂2017| 思思99re66在线精品免费观看| 亚洲精品国精品久久99热一| 99久久久国产精品免费牛牛 | 美女网站免费福利视频| 亚洲欧美综合精品成人导航| 亚洲成av人片不卡无码久久| 水蜜桃视频在线观看免费播放高清| 日韩中文无码有码免费视频 | 亚洲第一成人影院| 99久9在线|免费| 精品国产亚洲AV麻豆|