struts2学习笔记(二)——类型转换

来源:互联网 发布:物理仿真软件 编辑:程序博客网 时间:2024/05/22 12:13

已有的类型转换

         基本类型: boolean和Boolean, char和Chracter,int和Integer,long和Long,float和Float,double和Double,Date(用户输入为yyyy-MM-dd)

         集合类型:

                   对于List和数组,元素为String,如果是复合类型需要提供自定义转换器。

                   其他集合默认元素只支持String类型

         Ongl转换:

1)  直接构造POJO对象:

a)        在jsp中输入user.name, user.age 自动构造为User对象,需要提供User的无参构造函数,相应字段的getter和setter。

2)  直接构造Collection:

a)        在jsp中输入: <input type=”text” name=”users[0]”>  <input type=”text” name=”users[1]”>

b)        在action中为 setUsers(List<String> users);

3)  直接构造Map

a)        在jsp中输入:

<input type=”text”name=”users[‘one‘].name”>

<input type=”text”name=”users[‘one‘].age”>

<input type=”text”name=”users[‘two‘].name”>

<input type=”text”name=”users[‘two‘].age”>

b)        在action中为setUsers(Map<String,User> users);

自定义类型转换器

         继承自StrutsTypeConverter类,并重写convertFromString  convertToString.

         注册类型转换器: 1)局部(只有一个Action使用)在Action相同位置创建ActionName-conversion.properties文件,文件内容为属性名=包.类型转换器  ; 2)全局(对所有Action起作用) 创建xwork-conversion.properties文件,文件内容为  要转换类型=类型转换器,如  lee.User=lee.UserConverter

类型转换错误

         通过拦截器conversionError处理转换错误。

         基本过程:

1.      在struts.xml 中配置result type=“input”

2.      在jsp中使用<s:fielderror/> 输出错误信息

3.      中文的提示信息:在国际化资源环境文件中加入 xwork.default.invalid.fieldValue={0}字符串转换失败; 如果要对特定字段指定特别的提示信息,在该Action的局部资源文件中,invalide.fieldValue.属性名=提示信息。需要转换为UTF8格式。

参考资料

http://hi.baidu.com/annleecn/blog/item/3f0cdd89ce3c8092a4c27237.html

《struts2权威指南》(李刚编著)一书page142


原创粉丝点击