5.struts2类型转换
2015-03-07 11:38
316 查看
* 在struts2框架中,在对应动作类action中,
声明与页面中表单元素同名的属性,给出对应的set和get方法。
struts2框架就会根据反射机制,获取页面中表单元素的值
* 通过这种机制,struts2框架将页面中字符串类型的值进行转换了,转换成action中声明的类型。
* 编号在动作类声明的为Integer类型,这里会报错,没有setId(String str)的方法
在配置文件中配置
* 配置如果出错的时候,自动转向到错误页面
* 传过来的value属性是一个String数组 表单传递有两个name为createTime属性
* 在struts2框架里,自定义的类型转换器
如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
所以框架就会认为类型转换器转换成功,转向成功页面
两种配置文件写法
1. 与action在同一目录下 命名规则为UserAction-conversion.properties 里面的内容为 createTime=cn.itcast.converter.DateConverter
2. 在src下,命名规则为xwork-conversion.properties 里面的内容为java.util.Date=cn.itcast.converter.DateConverter
从form表单传递过去的是一个集合
* 类型只能声明为Collection类型
类型转换器的错误提示资源文件
声明与页面中表单元素同名的属性,给出对应的set和get方法。
struts2框架就会根据反射机制,获取页面中表单元素的值
* 通过这种机制,struts2框架将页面中字符串类型的值进行转换了,转换成action中声明的类型。
//出生日期:<input type="text" name="createTime"><br> private Date createTime;* 但是struts2不能转换所有类型,像日期类型就不能转换
* 编号在动作类声明的为Integer类型,这里会报错,没有setId(String str)的方法
在配置文件中配置
<result name="input">/converter/error.jsp</result>* 错误提示:No result defined for action cn.itcast.converter.UserAction and result input
* 配置如果出错的时候,自动转向到错误页面
@Override public Object convertValue(Object value, Class toType) {
if(value instanceof java.lang.String[]){ String [] str = (String[])value; if(str[0]!=null&&str[0].length()>0){ try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.parse(str[0]); } catch (ParseException e) { /* * 在struts2框架里,自定义的类型转换器, * 如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。 * 所以框架就会认为类型转换器转换成功,转向成功页面。 */ throw new RuntimeException(e); } } }
* 传过来的value属性是一个String数组 表单传递有两个name为createTime属性
* 在struts2框架里,自定义的类型转换器
如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
所以框架就会认为类型转换器转换成功,转向成功页面
两种配置文件写法
1. 与action在同一目录下 命名规则为UserAction-conversion.properties 里面的内容为 createTime=cn.itcast.converter.DateConverter
2. 在src下,命名规则为xwork-conversion.properties 里面的内容为java.util.Date=cn.itcast.converter.DateConverter
从form表单传递过去的是一个集合
员工姓名:<input type="text" name="emps[0].name"><br> 员工薪水:<input type="text" name="emps[0].salary"><br> 员工姓名:<input type="text" name="emps[1].name"><br> 员工薪水:<input type="text" name="emps[1].salary"><br>在action中声明为
private Collection<Employee> emps;
* 类型只能声明为Collection类型
<s:fielderror fieldName="createTime"/>* s:filelderror字段 如果没有fieldName属性 哪个字段出错,就会报哪个字段的错误 如果加了fieldName属性 则只会报指定字段的错误
<constant name="struts.custom.i18n.resources" value="cn.itcast.converter.converter"> </constant>* 配置所有资源文件,省略后缀名,如果配置多个资源文件时,用","隔开。不仅是国际化资源文件
类型转换器的错误提示资源文件
<span style="font-size: 12.380952835083px;">xwork.default.invalid.fieldvalue</span>
invalid.fieldvalue.createTime* 第一个是默认字段 第二个是指定字段
相关文章推荐
- struts2_自定义类型转换失败的提示信息
- struts2 类型转换器 Date型数据转换
- Struts2 入门4 数据校验_类型转换_国际化
- struts2页面到action中date类型自动转换
- Struts2中转换Date类型的问题
- 为struts2自定义类型转换器:Date的转换
- struts2中的类型转换
- Struts2学习:类型转换篇
- 学习struts2 类型转换总结
- STRUTS2 类型转换器 BigDecimal 处理
- Struts2中转换Date类型的问题(IE)
- 关于Struts2的类型转换详解
- Struts2系列笔记(7)---Struts2类型转换
- Struts2系列笔记(7)---Struts2类型转换
- struts2 基于OGNL的类型转换
- 4.1.6: Struts2的类型转换---基于Struts2的自定义类型转换器
- Struts2自定义类型转换
- Struts2的类型转换器
- Struts2学习(第七篇)——数据类型转换详解
- Struts2中的类型转换器