struts2类型转换相关问题
一、类型转化错误时,如何处理?
若Action类没有实现ValidationAware接口,在类型转化错误时,struts2会继续调用action方法,将该属性值置为默认值,不报错。
若Action类实现了ValidationAware接口,在类型转化错误时,struts2会检查当前<action>是否配置了<result name="input">……</result>,若配置了,将控制权交给该<result>;若没有配置,报错:No result defined for action …… and result input。
二、如何显示类型转化失败时的错误消息?
若form标签使用的是默认的主题(xhtml),则自动显示错误消息,默认的错误消息是:Invalid field value for field ……
若form标签使用的是simple主题,使用<s:fielderror>标签显示。例如:<s:fielderror fieldName="name"/>
三、默认的错误消息是如何显示的?
如果当前Action类实现了ValidationAware接口,conversionError拦截器(默认拦截器栈的一员)负责添加与类型转化相关的错误消息。
四、如何覆盖、定制默认的错误消息
在当前字段的model所在的包下新建一个文件,文件名:字段所在类的类名.properties
在该新建的文件中输入键值对,如下
invalid.fieldvalue.表单中相应字段的name属性的值=定制的错误消息
五、自定义类型转化器
1.为什么要自定义?
params拦截器只能完成基本数据类型和字符串之间的类型转化,不能完成字符串和引用类型之间的转换。
例如:字符串和日期之间的转化
2.如何自定义?
(1)开发一个类,继承StrutsTypeConverter
(2)配置(两种方式)
①基于字段的配置(只能处理当前字段的类型装换异常)
在字段所在的model所在的包下新建一个文件,文件名:字段所在类的类名-conversion.properties
在该新建文件中输入键值对,如下
待转换的字段名=自定义类型转换器的全类名
基于字段配置的自定义类型转化器在第一次使用时创建实例,并且仅创建一次(单例)
②基于类型的配置(可以处理当前类型的所有字段的转换异常)
在类路径下新建一个文件,文件名:xwork-conversion.properties
在该新建文件中输入键值对,如下
带转换类型的全类名=自定义类型转换器的全类名
基于类型配置的自定义类型转化器在当前web应用被加载时创建。
struts2类型转换相关问题的更多相关文章
- 14.怎样自学Struts2之Struts2类型转换[视频]
14.怎样自学Struts2之Struts2类型转换[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pa ...
- Struts2系列笔记(7)---Struts2类型转换
Struts2类型转换 struts2中内置了大量的类型转换器用来完成数据类型转换的问题,这篇随笔主要通过两个方面来写Struts类型转换 1:Struts2内置的类型转换器 2:如何自定义 ...
- C++中,有哪4种与类型转换相关的关键字?各有什么特点?应该在什么场合下使用?
转:https://www.cnblogs.com/mjiang2017/p/9358032.html C++中,四个与类型转换相关的关键字:static_cast.const_cast.reinte ...
- struts2 类型转换
概述 从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串. 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, ...
- struts2类型转换1
概述 从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串. HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 ...
- struts2类型转换
1. Struts2中的类型转换 我们知道通过HTTP提交到后台的数据,都是字符串的形式,而我们需要的数据类型当然不只字符串类型一种.所以,我们需要类型转换! 在Struts2中,类型转换的概念除了用 ...
- struts2类型转换与校验总结
1.struts2的类型转换分为全部变量转变和局部变量转变. 2.struts2对8中常见的基本类型的属性变量,可以自动转换.如果是User对象,可以手动简历UserAction-coversion. ...
- struts2类型转换中的错误处理
由于类型转换过程中有可能出现原始参数无法转换为目标类型的错误,所以struts2提供了类型转换中的异常处理机制. 在struts2的默认配置文件struts-default.xml中有如下一段配置代码 ...
- java学习笔记 (2) —— Struts2类型转换、数据验证重要知识点
1.*Action.conversion-properties 如(point=com.test.Converter.PointListConverter) 具体操作类的配置文件 2.*Action. ...
随机推荐
- Day-17: 网络编程
---恢复内容开始--- 现有的互联网通讯方式,是服务器端的进程与客户端进程的通信.Python中进行网络编程,就是在Python程序本身这个进程内,连接别的服务器进程的通信端口进行通信. 互联网协议 ...
- 学习Python不得不关注和学习的国外大神博客
注意 : 本文收集于网路 . 由于常常更新 , 有些链接打不开, 请自备梯子 在学习Python过程中,总会遇到各种各样的坑, 虽然Python是一门优美而简单易学的语言 . 但当学习后 , 总想着更 ...
- Jquery总结图
读完锋利Jquery第二版书,对其进行整理做出的思维导图:
- Jenkins使用-windows机器上的文件上传到linux
一.背景 最近的一个java项目,使用maven作包管理,通过jenkins把编译打包后war部署到另一台linux server上的glassfish(Ver3.1)中,在网上搜索的时候看到有人使用 ...
- global,local,static的区别
1.在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建): <?php $a=1; f ...
- 翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 引言&前言
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 译者团队(排名不分先后):阿希.blueken.brucec ...
- js 倒计时(服务器时间同步)
首先说一下,为什么要服务器时间同步, 因为服务器时间和本地电脑时间存在一定的时间差.有些对时效性要求非常高的应用,例如时时彩开奖,是不能容忍这种时间差存在的. 方案1:每次倒计时去服务端请求时间 // ...
- java学习——java中的反射学习笔记
Java--reflect 一.Class类的使用 什么是Class类? 1:在面向对象的世界中,万事万物皆对象. java语言中,静态的成员,普通数据类型类是不是对象呢? 是,对象!是类的对象! 类 ...
- 【转】Keberos认证原理
前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...
- Problem 2144 Shooting Game fzu
Problem 2144 Shooting Game Accept: 99 Submit: 465Time Limit: 1000 mSec Memory Limit : 32768 KB ...