Struts2的Action中自定義方法的輸入校驗

自定義方法的輸入校驗

  1. 對於通過 action​ 的 method​ 屬性所指定的自定義方法 myExecute​ ,其對應的自定義輸入校驗方法名爲 validateMyExecute​ 。 (底層是通過反射調用的)

    public void validateMyExecute() {
    	System.out.println("validateMyExecute invoked");
    
    	 this.addActionError("action error");
    }
    
    public String myExecute() throws Exception {
    	System.out.println("myExecute invoked");
    	return SUCCESS;
    }
    
  2. 校驗方法的執行順序

    當在 Action​ 中指定了自定義的 execute​ 方法時,首先會執行自定義的 execute​ 方法所對應的輸入校驗方法,然後再去執行 validate​ 方法,執行完畢之後如果出現了任何錯誤都不會再去執行自定義的 execute​ 方法,流程轉向了 input​ 這個名字所對應的頁面上。

    public void validateMyExecute() {
    	System.out.println("validateMyExecute invoked");
    
    	 this.addActionError("action error");
    }
    
    @Override
    public void validate() {
    	System.out.println("validate invoked");
    
    	// this.addActionError("action error");
    }
    
    @Override
    public String execute() throws Exception {
    	return SUCCESS;
    }
    
    public String myExecute() throws Exception {
    	System.out.println("myExecute invoked");
    	return SUCCESS;
    }
    // validateMyExecute invoked
    // validate invoked
    

    效果

自定義 Field 級別的校驗信息

在 Action 的同級目錄新建一個屬性文件,例如:RegisterAction.properties

invalid.fieldvalue.birthday=age invalid custom msg
invalid.fieldvalue.graduation=graduation invalid custom msg

結果如下:

總結:

  1. 新建一個以 Action​ 名命名的 properties 文件,如: RegisterAction.properties

  2. 然後在該屬性文件中指定每一個出錯字段的錯誤消息,格式:

    invalid.fieldvalue.borthday=birthday invalid custom msg
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章