Struts2的Action中自定义方法的输入校验
自定义方法的输入校验
对于通过
action 的method 属性所指定的自定义方法myExecute ,其对应的自定义输入校验方法名为validateMyExecute 。 (底层是通过反射调用的)1
2
3
4
5
6
7
8
9
10public 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 这个名字所对应的页面上。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24public void validateMyExecute() {
System.out.println("validateMyExecute invoked");
this.addActionError("action error");
}
public void validate() {
System.out.println("validate invoked");
// this.addActionError("action error");
}
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
1 | invalid.fieldvalue.birthday=age invalid custom msg |
结果如下:
总结:
新建一个以
Action 名命名的 properties 文件,如:RegisterAction.properties然后在该属性文件中指定每一个出错字段的错误消息,格式:
1
invalid.fieldvalue.borthday=birthday invalid custom msg

