zoukankan      html  css  js  c++  java
  • Struts2-学习笔记系列(13)-类型转换异常和校验器

    Struts2框架有默认的类型转换错误拦截机制,该配置在struts-default.xml中,名叫conversionError,但是想使用需要继承ActionSupport.

    默认的错误提示信息是英语的,若是想自定义,需要修改国际化文件:

    mess.properties:

    xwork.default.invalid.fieldvalue={0}字段类型转换失败!

    对于对象的字段进行提示的话,需要使用局部action属性文件,并制定对应的字段名称

    invalid.fieldvalue.user.birth=生日信息必须满足yyyy-MM-dd格式

     

    在交互的时候,经常会有录入错误的情况。若是在服务器端捕获错误,可以使用默认的校验器。

    Struts2提供了非常多的类型校验器:比如网址、邮件、数字等。当然,除了在创建专门的校验规则文件外,还可以使用基于注解的校验器:

    @RequiredStringValidator(key = "name.required",message = "请输入用户名")
    public String getName() {
        return name;
    }

    重写积累的validate方法

    @Override
    public void validate() {
        if(!name.toString().contains("zcx")){
            addFieldError("user","用户名必须包含zcx");
        }
    }

    另外struts还提供了验证validateXxxx技术。其中Xxxxx表示action中的某一个方法

    Struts2校验的步骤:
    1.类型转换器负责把参数进行转换,并设置成action的属性值

    2.执行转换过程中的异常。若是出现异常,保存到actioncontext中,conversionError拦截器将其封装到filederror字段,执行第3步;若是没异常,直接到第3步

    3.使用struts配置的校验器进行校验

    4.通过反射调用validateXxxx方法

    5.调用action类中的validate方法

    6.若是前5步都没异常,直接调用本次请求的action;否则转入input逻辑视图对应的视图资源

  • 相关阅读:
    文件上传、下载测试点总结
    selenium+Python(Page Object 设计模式实例)
    Python面向对象
    Python内置函数
    Python异常处理
    Python文件的I/o
    vue-router 二级路由
    vue中如何获取后台数据
    移动端适配问题
    vue中钩子函数的用法
  • 原文地址:https://www.cnblogs.com/zijiyanxi/p/5559724.html
Copyright © 2011-2022 走看看