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

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

          Struts 2.0
          支持更高級(jí)的POJO訪(fǎng)問(wèn),先定義一個(gè)User.java類(lèi)。把usernamepassword屬性,從Login類(lèi)中分離出來(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類(lèi)的實(shí)例
          ********setUser()***********  //執(zhí)行setUser(),準(zhǔn)備賦值操作
          ******setPassword()*********  //set賦值操作,此時(shí)是真正的賦值
          *********getUser()*************  //得到User類(lèi)的實(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類(lèi)的實(shí)例
          ******getUsername()******  //自動(dòng)執(zhí)行g(shù)et方法
          ********getUser()*************  //得到User類(lèi)的實(shí)例
          ******getPassword()*******  //自動(dòng)執(zhí)行g(shù)et方法

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


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

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

          常用鏈接

          留言簿(11)

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

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          新聞分類(lèi)

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 德安县| 晋宁县| 平罗县| 淮南市| 台湾省| 汶川县| 西畴县| 阳谷县| 茶陵县| 临猗县| 灌云县| 中阳县| 霍城县| 海淀区| 凉城县| 临潭县| 乌恰县| 桐柏县| 茌平县| 玛曲县| 阳新县| 温泉县| 绥滨县| 都江堰市| 新泰市| 藁城市| 新密市| 彭阳县| 栾城县| 东兰县| 昭通市| 吉林市| 高要市| 全椒县| 利津县| 潮安县| 遂溪县| 阳泉市| 清水县| 高陵县| 三台县|