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
    此文主要來自m.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)

    我參與的團隊

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    新聞分類

    新聞檔案

    收藏夾

    圍脖

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩精品无码免费专区午夜不卡| 国产成人精品高清免费| 五月天婷婷免费视频| 亚洲中文无码线在线观看| 亚洲深深色噜噜狠狠爱网站| 免费无码成人AV片在线在线播放| 5g影院5g天天爽永久免费影院| 一级特黄录像免费播放中文版| 成人亚洲国产va天堂| 亚洲黄色在线视频| 亚洲日韩乱码中文无码蜜桃臀网站| 国产免费私拍一区二区三区 | 亚洲精品99久久久久中文字幕 | 色婷婷亚洲一区二区三区| 亚洲性色高清完整版在线观看| 亚洲精品午夜无码专区| 国产精品四虎在线观看免费| 国产h视频在线观看免费| 免费A级毛片无码专区| 香蕉免费一区二区三区| 野花香高清在线观看视频播放免费| 亚洲黄片手机免费观看| 免费人成动漫在线播放r18| 国产亚洲女在线线精品| 国产成人高清亚洲一区91| 亚洲国产成人久久一区二区三区| 亚洲综合偷自成人网第页色| 亚洲免费网站在线观看| 亚洲成人福利网站| 亚洲三级中文字幕| 国产精品亚洲专区在线观看| 亚洲一区二区三区深夜天堂| 亚洲av日韩av综合| 国产精品高清视亚洲精品| 亚洲AV色吊丝无码| 亚洲真人无码永久在线观看| 亚洲午夜精品久久久久久app| 在线观看日本亚洲一区| 亚洲av无码成人精品区一本二本| 亚洲精品国产av成拍色拍| 色婷婷亚洲一区二区三区|