Struts2中的驗證機制

struts2中的手動驗證須要咱們在action中繼承ActionSupport類,而且覆蓋裏面的validate方法,進行手動驗證,原理實現過程 Brown--->validate-方法-->execute方法---->result。當咱們有大量的請求同一個action中的不一樣方法時,咱們須要本身定義方法來驗證不一樣的請求,而不能把全部的驗證都寫在validate方法裏面,這時咱們須要寫一個與請求方法對應的驗證方法,原理實現過程 Brown--->validateXxx方法-->xxx方法---->result。ide

注意:當咱們驗證不成功的時候咱們能夠在驗證方法裏面加入 this.addActionError("年齡不合法!");這個方法,而在前臺頁面咱們能夠經過<s:actionerror/>標籤來獲取這個錯誤提示,而且當咱們驗證不成功的時候咱們須要指定result的name爲input值來肯定驗證失敗須要跳轉到的頁面。this

例如:spa

public class RegAction extends ActionSupport{
    private User user;
    public User getUser() {
        return user;
    }繼承

    public void setUser(User user) {
        this.user = user;
    }ci

    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("execute()方法執行了!");
        return super.execute();
   
    lic String age(){
        System.out.println("age");
        return SUCCESS;
    }
    
    //該方法名只能是validate+提交到的方法名。不能進行自定義。
    public void validateAge(){
        if(user.getAge()>100||user.getAge()<1){
            this.addActionError("年齡不合法!");
            }
    }
    
    @Override
    public void validate() {
        // TODO Auto-generated method stub
        /*
         * 當咱們提交的年齡大於一百歲或者小於一歲的時候,將直接跳轉到input類型所指定的頁面上去。
         * 而當咱們有不少數據提交到這個action時,確定是提交到不一樣的方法中,因此咱們驗證也寫到不一樣的方法中去,不能寫在validate中了
         * 由於validate方法只進行驗證提交給execute方法的數據。
         */
        /*if(user.getAge()>100||user.getAge()<1){
            this.addActionError("年齡不合法!");
            
        }*/
        
        System.out.println("validate()方法執行了!");
    }
}get

相關文章
相關標籤/搜索