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)自www.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大片的网站| 亚洲精品无码不卡在线播HE| 亚洲精品无码永久中文字幕| 亚洲国产成人精品无码一区二区 | 97无码人妻福利免费公开在线视频| 真人做人试看60分钟免费视频 | 亚洲色WWW成人永久网址| 亚洲三级中文字幕| 中国内地毛片免费高清| 嫩草视频在线免费观看| 亚洲av中文无码乱人伦在线r▽| 亚洲国产成人综合精品| 无码免费一区二区三区免费播放 | 亚洲国产成人爱av在线播放| 亚洲欧洲日本天天堂在线观看| 免费毛片毛片网址| 黄页网站在线看免费| 亚洲区小说区图片区QVOD| 亚洲丶国产丶欧美一区二区三区| 亚欧免费一级毛片| AV在线亚洲男人的天堂| 亚洲午夜无码毛片av久久京东热| 精品国产免费一区二区三区香蕉| 九月婷婷亚洲综合在线| 精品久久亚洲中文无码| 久久国产精品萌白酱免费| 亚洲av区一区二区三| 在线观看亚洲AV每日更新无码| 日本中文字幕免费高清视频| 亚洲黄黄黄网站在线观看| 2019亚洲午夜无码天堂| 热re99久久6国产精品免费| 亚洲人成人网站在线观看| 亚洲国产精品嫩草影院| 天天影院成人免费观看| 亚洲V无码一区二区三区四区观看| 日韩大片免费观看视频播放| 四虎在线免费播放| 亚洲av无码专区在线| 最近中文字幕无免费| 亚洲AV中文无码乱人伦下载 |