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逻辑视图对应的视图资源

  • 相关阅读:
    phpfpm进程数设置多少合适
    GitLab的安装及使用教程
    男人的中年危机坏在哪?(转载)
    让敏捷落地,从“认识自我”开始
    优化你的架构设计
    工作中的那点事儿是工作经验,还是思路给了你生存的能力(原创)
    窗口过程处理WndProc遇到的问题
    CodeBlocks 10.0+OpenCV 2.4.0配置方法
    OpenCV在VS2010下永久性配置
    Win8下的STCISP下载问题解决
  • 原文地址:https://www.cnblogs.com/zijiyanxi/p/5559724.html
Copyright © 2011-2022 走看看