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
    

    效果

    图片[1]-Struts2的Action中自定义方法的输入校验-浅海拾贝

自定义 Field 级别的校验信息

在 Action 的同级目录新建一个属性文件,例如:RegisterAction.properties

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

结果如下:

图片[2]-Struts2的Action中自定义方法的输入校验-浅海拾贝

总结:

  1. 新建一个以 Action​ 名命名的 properties 文件,如: RegisterAction.properties
  2. 然后在该属性文件中指定每一个出错字段的错误消息,格式:
    invalid.fieldvalue.borthday=birthday invalid custom msg
    

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容