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

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

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

    posts - 64,  comments - 9,  trackbacks - 0

    一. ActionSupport是個工具類,他實現了Action, Validatable等接口, Validatable提供validate()方法進行數據驗證.Action只要繼承ActionSupport類,重寫validate()方法就可以進行數據驗證

    二. 校驗的流程
         首先,Struts框架對輸入數據進行類型轉換,然后再進行數據校驗,如果類型轉換與數據校驗都沒有錯誤發生, 就進入execute(),否則請求將被轉發到input視圖

    三. 注冊實例
        首先新建RegistAcion.java

    Java代碼 復制代碼
    1. package com;   
    2. import java.util.Date;   
    3. import com.opensymphony.xwork2.ActionSupport;   
    4. public class RegistAction extends ActionSupport {   
    5.     private String userName;   
    6.            
    7.     private Integer age;   
    8.        
    9.     private Date birthday;   
    10.        
    11.     public String getUserName() {   
    12.         return userName;   
    13.     }   
    14.     public void setUserName(String userName) {   
    15.         this.userName = userName;   
    16.     }   
    17.     public Integer getAge() {   
    18.         return age;   
    19.     }   
    20.     public void setAge(Integer age) {   
    21.         this.age = age;   
    22.     }   
    23.     public Date getBirthday() {   
    24.         return birthday;   
    25.     }   
    26.     public void setBirthday(Date birthday) {   
    27.         this.birthday = birthday;   
    28.     }   
    29.     @Override  
    30.     public String execute() throws Exception {   
    31.         System.out.println("注冊成功");   
    32.         return SUCCESS;   
    33.     }   
    34.     @Override  
    35.     public void validate() {   
    36.         if("".equals(userName)){   
    37.             addFieldError("userName""username is empty");   
    38.         }   
    39.         if(null != age){   
    40.             if(1 > age || 150 < age){   
    41.                 addFieldError("age""age invalid");   
    42.             }   
    43.         }   
    44.     }   
    45. }  

     配置Action

    Xml代碼 復制代碼
    1. <action name="regist" class="com.RegistAction">  
    2.       <result name="success">/welcome.jsp</result>  
    3.       <result name="input">/regist.jsp</result>  
    4.  </action>  

     接著是注冊頁面和注冊成功頁面

    regist.jsp

    Html代碼 復制代碼
    1. <body>  
    2.     <form action="regist.action" method="post">  
    3.         <s:fielderror></s:fielderror>  
    4.         <table><tr>  
    5.                 <td>userName:</td>  
    6.                 <td>  
    7.                     <input type="text" name="userName">  
    8.                 </td>  
    9.             </tr>  
    10.             <tr>  
    11.                 <td>age:</td>  
    12.                 <td>  
    13.                     <input type="text" name="age">  
    14.                 </td>  
    15.             </tr>  
    16.             <tr>  
    17.                 <td>birthday:</td>  
    18.                 <td>  
    19.                     <input type="text" name="birthday">  
    20.                 </td>  
    21.             </tr>  
    22.             <tr>  
    23.                 <td colspan="2">  
    24.                     <s:submit value="注冊"></s:submit>  
    25.                 </td>  
    26.             </tr>  
    27.     </form>  
    28.   </body>  

     如果不輸入userName, age輸入為abc,會提示
     Invalid field value for field "age".
     username is empty

    1. 其中Invalid field value for field "age" 信息是struts2通過內置的類型轉換器進行類型轉換時,如果不能成功轉換, struts2框架自動生成一條錯誤信息,并將該錯誤信息放到addFieldError里面,這種默認的輸出信息格式是在  xwork-2.0.4.jar中定義的.  com/opensymphony/xwork2/xwork-messages.properties文件中有一條xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".

    2. 這是一種全局的錯誤提示方式,整個系統中只要是字段類型轉換錯誤都會這樣提示,我們也可以改變這種輸出格式,只要在全局的國際資源文件中重寫xwork.default.invalid.fieldvalue就可以了.

    實現方式:
    在struts.xml中加入<constant name="struts.custom.i18n.resources" value="messageResource"></constant> (此處i18n,不是l,是1)
    或者也可以在struts.properties中加入struts.custom.i18n.resources=messageResource
    指定國際化資源文件名為messageResource. Properties

    新建messageResource. Properties資源文件并添加數據xwork.default.invalid.fieldvalue={0} failure
    修改之后字段類型轉換錯誤提示為 : {0} failure

    3 所有的類型轉換失敗后,struts2會將基本類型設置為0,對象類型設置為null,這里的age的類型為Integer,當類型轉換失敗age值為null,如果age的類型為int,那么轉換失敗后值為0

    4.這種提示信息不夠友好,也可以定義局布的提示信息,為每一個Action新建一個properties文件,文件名為XXX.properties(Action名.properties)

    實現方式:新建RegistAction.properties并添加
    invalid.fieldvalue.age=age error
    invalid.fieldvalue.birthday=birthday error
    其中age和birthday分別為字段的名稱

    四.
    Struts2也提供類似BaseDispatchAction的功能

    Java代碼 復制代碼
    1. package com;   
    2. import com.opensymphony.xwork2.ActionSupport;   
    3. public class Regist2Action extends ActionSupport {   
    4.     private String userName;   
    5.            
    6.     public String getUserName() {   
    7.         return userName;   
    8.     }   
    9.     public void setUserName(String userName) {   
    10.         this.userName = userName;   
    11.     }   
    12.     public String regist() throws Exception {   
    13.         System.out.println("注冊成功-regist");   
    14.         return SUCCESS;   
    15.     }   
    16.        
    17.     public void validateRegist() {   
    18.         if(userName.equals("")){   
    19.             addFieldError("userName""請輸入用戶名-registValidate");   
    20.         }   
    21.     }   
    22. }  

      <action name="regist2" class="com.Regist2Action" method="regist">
         <result name="success">/welcome.jsp</result>
         <result name="input">/regist2.jsp</result>
       </action>

    指定了method為regist,當請求時會執行regist(),不會再去執行默認的execute()方法了,
    validateRegist()方法是專門針對regist校驗的.(格式為validate+方法名)

    posted on 2009-10-13 14:58 super_nini 閱讀(329) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 色多多A级毛片免费看| 亚洲日韩精品一区二区三区无码| 99精品视频在线观看免费播放| 免费毛片a线观看| 亚洲最大免费视频网| 成**人免费一级毛片| 国产v片免费播放| 日韩亚洲一区二区三区| 亚洲精品中文字幕无码AV| 中文字幕亚洲精品无码| 免费精品国自产拍在线播放 | 国产亚洲精品美女久久久久久下载| 免费激情网站国产高清第一页| 免费一级毛片在线观看| 亚洲人成影院在线高清| 亚洲高清免费视频| 青青青国产在线观看免费 | 国产美女在线精品免费观看| 亚洲天堂免费在线视频| 亚洲欧洲综合在线| 一二三四影视在线看片免费 | 久久综合给合久久国产免费| 亚洲午夜精品久久久久久人妖| 亚洲色www永久网站| 亚洲AV无码XXX麻豆艾秋| 十八禁无码免费网站| 亚洲视频在线精品| 久久久久久久久久国产精品免费 | 亚洲人AV在线无码影院观看| 免费一看一级毛片全播放| 好吊色永久免费视频大全| 日本特黄特色aa大片免费| 亚洲专区在线视频| 国产日韩AV免费无码一区二区 | 国产片AV片永久免费观看 | 久久精品国产亚洲AV未满十八| 91免费国产自产地址入| 久久精品国产精品亚洲艾| 皇色在线免费视频| 亚洲国产成人无码av在线播放| 国产免费人视频在线观看免费|