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
    歡迎走進有風的地方~~
    posts - 63,  comments - 279,  trackbacks - 0
    此文主要來自www.tkk7.com/Max的實例

    Struts 2.0
    支持更高級的POJO訪問,先定義一個User.java類。把usernamepassword屬性,從Login類中分離出來,它可以使系統(tǒng)結(jié)構(gòu)更清晰,對開發(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>
    控制臺輸出及分析:
    *********getUser()*************  //得到User類的實例
    ********setUser()***********  //執(zhí)行setUser(),準備賦值操作
    ******setPassword()*********  //set賦值操作,此時是真正的賦值
    *********getUser()*************  //得到User類的實例
    *******setUsername()********  //set賦值操作,此時是真正的賦值
    以上有struts2框架自動執(zhí)行
    ******validate()******  //表單驗證
    ******getUsername()******  //表單驗證時調(diào)用get方法(判斷username)
    ******getUsername()******  //表單驗證時第二次調(diào)用get方法(判斷username)
    ******getPassword()******* //表單驗證時調(diào)用get方法(判斷password)
    ******getPassword()*******  //表單驗證時第二次調(diào)用get方法(判斷password)
    *****execute()******  //業(yè)務(wù)邏輯
    ******getUsername()******  //調(diào)用get方法
    ******getPassword()*******  //調(diào)用get方法
    一下由Struts2框架自動執(zhí)行
    *********getUser()************* //得到User類的實例
    ******getUsername()******  //自動執(zhí)行g(shù)et方法
    ********getUser()*************  //得到User類的實例
    ******getPassword()*******  //自動執(zhí)行g(shù)et方法

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


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

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

    常用鏈接

    留言簿(11)

    我參與的團隊

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    新聞分類

    新聞檔案

    收藏夾

    圍脖

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一级免费毛片| 亚洲国产综合91精品麻豆| ASS亚洲熟妇毛茸茸PICS| 久久99青青精品免费观看| 午夜亚洲国产理论秋霞| 亚洲视频在线观看免费| 91久久亚洲国产成人精品性色| 久久九九AV免费精品| 亚洲∧v久久久无码精品| 88av免费观看入口在线| 亚洲大香人伊一本线| 成年轻人网站色免费看| 韩国亚洲伊人久久综合影院| 免费国产成人午夜电影| 你懂的在线免费观看| 久久精品国产亚洲AV大全| 男男AV纯肉无码免费播放无码| 国产精品亚洲精品久久精品| 亚洲狠狠爱综合影院婷婷| 国内永久免费crm系统z在线| 亚洲国产高清视频在线观看| 波多野结衣久久高清免费 | 成在人线AV无码免费| 亚洲αⅴ无码乱码在线观看性色| 日本免费一区二区三区最新| 特级毛片aaaa免费观看| 久久九九亚洲精品| 日本XXX黄区免费看| 精品女同一区二区三区免费播放| 亚洲精品无码鲁网中文电影| 国产成人免费午夜在线观看| 成人精品国产亚洲欧洲| 久久亚洲国产视频| 在线观看91精品国产不卡免费| 美女网站在线观看视频免费的| 亚洲人成日本在线观看| 青青草原亚洲视频| 97无码免费人妻超级碰碰夜夜| 国产精品内射视频免费| 亚洲区视频在线观看| 亚洲综合精品网站|