自定義方法的輸入校驗
-
對於通過
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; }
-
校驗方法的執行順序
當在
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
結果如下:
總結:
-
新建一個以
Action
名命名的 properties 文件,如:RegisterAction.properties
-
然後在該屬性文件中指定每一個出錯字段的錯誤消息,格式:
invalid.fieldvalue.borthday=birthday invalid custom msg