标签:
基于字段的转换:
1、写一个类,继承DefaultTypeConverter,覆盖convertValue(Object value, Class toType)
1 public Object convertValue(Object value, Class toType) { 2 if(value==null || toType==null || toType!=java.util.Date.class ) 3 { 4 return false; 5 } 6 if(value instanceof java.lang.String[]) 7 { 8 String[] strs=(String[])value; 9 if(strs[0]!=null && strs[0].length()>0) 10 { 11 try { 12 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-DD-mm"); 13 return sdf.parse(strs[0]); 14 } catch (ParseException e) { 15 /* 16 * 在struts2框架里,自定义的类型转换器, 17 * 如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。 18 * 所以框架就会认为类型转换器转换成功,转向成功页面。 19 */ 20 throw new RuntimeException(e); 21 } 22 } 23 } 24 return new Date(); 25 }
2、在调用转换转换类的文件夹下,新建一个:类名_conversion.properties,里面配置key= 要转换的类 value= 转换类的全名(cn/.../..conver..)
1 birthday=cn.test.type.DataConver
3、我们知道,有可能转换失败,所以我们需要显示转换失败信息
<%@ taglib uri="/struts-tags" prefix="s" %>
<s:fielderror fieldName="user.birthday"/>
*但是这样的失败信息是英文,所以我们需要显示为中文信息在类文件夹下,新建一个xml文件,里面设置
xwork.default.invalid.fieldvalue=提示信息 "{0}".({0}代表字段)
如果要针对字段进行个性化提示,可以在下面添加:
invalid.fieldvalue.字段名=提示信息
*将xml注册到struts.xml中
1 <!-- 2 配置所有资源文件,省略后缀名,如果配置多个资源文件时,用","隔开。不仅是国际化资源文件 3 * 类型转换器的错误提示资源文件(省略后缀名) 4 --> 5 <constant name="struts.custom.i18n.resources" 6 value="cn.test.type.converter,cn.itcast.i18n.resources"> 7 </constant>
还可以基于类的转换:转换文件不变,在类的文件夹下新建xwork-conversion.propertices文件,在里面配置
要转换的类型(java.utiils.xxx)=转换类的全路径(cn.x.xxx)
标签:
原文地址:http://www.cnblogs.com/liuwt365/p/4206818.html