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

Struts2-学习笔记系列(13)-类型转换异常和校验器的更多相关文章

  1. [Struts2学习笔记] -- 简单的类型转换

    接下来学习一下Struts2简单的类型转换,Struts2基于ognl.jar实现了简单类型的数据转换.比如jsp页面中的form值与字段值的转换,下面写一个例子. 1.创建一个jsp页面,编写一个f ...

  2. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...

  3. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  4. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  5. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  6. .NET CORE学习笔记系列(2)——依赖注入[7]: .NET Core DI框架[服务注册]

    原文https://www.cnblogs.com/artech/p/net-core-di-07.html 包含服务注册信息的IServiceCollection对象最终被用来创建作为DI容器的IS ...

  7. .NET CORE学习笔记系列(2)——依赖注入【3】依赖注入模式

    原文:https://www.cnblogs.com/artech/p/net-core-di-03.html IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架中以实现对流 ...

  8. Hadoop学习笔记系列

    Hadoop学习笔记系列   一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼 ...

  9. RocketMQ学习笔记(13)----RocketMQ的Consumer消息重试

    1. 概念 Producer端重试: 生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败. 这种消息失败重试我们可以手动设置发送失败重试的次 ...

随机推荐

  1. echarts legend文字配置多个颜色(转)

    困扰很久的问题终于解决了 oh yea! echarts legend文字配置多个颜色legend: {data: [{name:‘直接访问’,icon : ‘circle’,textStyle: { ...

  2. 有关KMP算法

    KMP算法: 此算法的本质是首先对于模板字符串进行计算,生成一个数组(next数组),该数组反映了模板字符串的情况. 例: S: ABADACABABCD P: ABAB 当我们查询到P3与S3(B和 ...

  3. 推荐三款好用的JSON格式化工具——JSON-handle & HiJson & JSTool

    工具一:JSON-handle JSON-Handle是一款谷歌浏览器插件. 1.访问http://jsonhandle.sinaapp.com/下载 2.打开Chrome浏览器的扩展程序(访问chr ...

  4. Python3 分数

    limit_denominator()定义:通过限制分母的大小来取一个近似值提高精度.格式:fractionobject.limit_denominator('分母最大值') denominator定 ...

  5. greenplum数据库常用操作

    1. 场景描述 greenplum集群部署好后,软件老王在实际使用过程中碰到一些问题,简单记录下,希望能帮到有需要的朋友. 2 .解决方案 2.1 gpcc监控地址 说明:非常重要,greenplum ...

  6. demo08-js条件运算符

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. JUnit 5基础指南

    A Guide to JUnit 5 准备 添加maven依赖: <dependency> <groupId>org.junit.jupiter</groupId> ...

  8. 热点 | 四月最佳Github项目库与最有趣Reddit热点讨论

    来源:Analytics Vidhya 编译:磐石 [磐创AI导读]:Github是全球最大的开源代码社区,Reddit是最受大家欢迎的热点讨论交流平台.接下来磐创AI将为大家带来四月份Github最 ...

  9. 巴什博弈 HDU-1846

    描述:一堆石子有 n 个 ,两个人开始轮流取,每人最多取m个,最少取1个,最后一个将石子取完的是赢家. 思路:对于先手来说,如果有(m+1)个石子,先手取 k 个,后手就可以取 m+1-k 个,所以有 ...

  10. sql 模块sqllit

    1.创建数据库表 面对 SQLite 数据库,我们之前熟悉的 SQL 指令都可以用: >>> create_table = "create table books (tit ...