struts2整合spring后validation.xml验证 带参数跳转input页面【原创】
这个问题困扰我很久了。我用validation.xml写了一个struts2的表单验证,是没问题,可是,但校验不通过返回到input的时候,由于这个结果页面有一个是需要在数据库那数据来初始化的,而我把spring改成了多例模式,这样一跳转,值就没了,初始化不了,会报错~于是我看了继承类ActionSupport 的源码,找到了它验证不通过会执行的方法,于是把应该初始化的操作重写在了这个方法里面,就行了!如下:
/**
* 校验方法
*/
public void validate() {
?? System.out.println("Fuck Validate!!!");
?? this.opsysconfigs = userService.sysconfigList("orgname");
?? this.opusrgroups = userService.opusrgroupList();
??
}
?
当用户提交请求时,请求得到execute方法处理之前,先会被validate方法处理,如果该方法处理结束后,Action的fieldErrors里的校验错误不为空,请求将被转发给input逻辑视图
public abstract java.lang.String execute() throws java.lang.Exception;
而Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。
?