读书人

struts2部类转化

发布时间: 2012-12-23 11:28:15 作者: rapoo

struts2类型转化
struts的属性驱动:
就是在action类里面定义属性字段并提供get和set方法,注意字段要与页面的name属性值相同
struts会通过反射将页面的值赋给action中的字段
在配置文件中添加<result name = "input">转向的页面</result>,配置异常时转向的页面,input是固定值
struts2默认是可以转换yy-MM-dd格式的日期,如果要转换其它格式需要自定义转换器
1)自定义类型转换器步骤:
1)实现TypeConverter或者继承它的实现类(一般继承DefaultTypeConverter实现converterValue三个参数的方法)
/*
用到的是两个值:
value: 是从页面获取到的值,struts底层是通过getParameterValues()获取的所以返回的是一个数组
toType: 是要转换成的类型
*/
public Object convertValue(Map<String, Object> context, Object value,Class toType)
2)判断
1.判断value是否为空,为空返回null;
2.判断类型是否为空,为空返回null
3.判断类型是否是要转换成的类型,不是返回null
4.判断value是否是一个数组,是一个数组才执行转换
3)将value强转成数组
4)创建日期转换对象将数据转换成日期格式返回,在转换之前判断数据是否存在或不等于null
5)转换器的异常必须抛出,struts2拦截器拦截到异常证明转换出错,如果不抛出拦截器会当做转换成功
1.<%@ taglib uri="/struts-tags" prefix="s" %>
在错误页面引入struts2的标签库,struts2拦截器会把所有的错误信息放到一个集合中
2.通过<s:fielderror name = "action中定定义的字段名">就可以获取到错误信息
3.<s:fielderror></s:fielderror>是将拦截的所有的错误信息显示
默认是英文错误提示,修改成中文提示:
在当前包下创建一个.properties文件,文件名自定义
xwork.default.invalid.fieldvalue=修改成中文错误提示信息+"{0}".
方法1.在配置文件中配置(全局)
<constant name="struts.custom.il8n.resources" value="包名+文件名"></constant>
方法2.在配置文件中配置(局部)
invalid.fieldvalue.字段名=提示信息

2)注册配置
(1)基于字段配置(局部只针对某个字段有效):
创建actionClassName-conversion.properties文件,该文件放到对应的action同一个目录下,actionClassName是实现了action接口的类名
文件内容是:要转化的action中的字段名=自定义转换器的全类名
(2)基于类的配置(全局只要是要转换成某个类型都管用)
在src下创建一个xwork-conversion.properties文件(文件名是固定的写法)
文件内容是:要转换的类型的全类名=转换器的全类名
将页面的数据封装到javaBean中;
1.在action中添加javaBean字段:private Person person;
2.action中提供set/get方法
3.在页面name属性中定义规范是:action中的javaBean字段名.javaBean中的字段名:name="person.neme"

读书人网 >软件架构设计

热点推荐