您的位置:首页 > 编程语言 > Java开发

Struts2 类型转换

2015-01-06 19:56 239 查看
基于字段的转换:

1、写一个类,继承DefaultTypeConverter,覆盖convertValue(Object value, Class toType)

public Object convertValue(Object value, Class toType) {
if(value==null || toType==null || toType!=java.util.Date.class )
{
return false;
}
if(value instanceof java.lang.String[])
{
String[] strs=(String[])value;
if(strs[0]!=null && strs[0].length()>0)
{
try {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-DD-mm");
return sdf.parse(strs[0]);
} catch (ParseException e) {
/*
* 在struts2框架里,自定义的类型转换器,
*  如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
*  所以框架就会认为类型转换器转换成功,转向成功页面。
*/
throw new RuntimeException(e);
}
}
}
return new Date();
}


2、在调用转换转换类的文件夹下,新建一个:类名_conversion.properties,里面配置key= 要转换的类 value= 转换类的全名(cn/.../..conver..)

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中

  

<!--
配置所有资源文件,省略后缀名,如果配置多个资源文件时,用","隔开。不仅是国际化资源文件
* 类型转换器的错误提示资源文件(省略后缀名)
-->
<constant name="struts.custom.i18n.resources"
value="cn.test.type.converter,cn.itcast.i18n.resources">
</constant>


还可以基于类的转换:转换文件不变,在类的文件夹下新建xwork-conversion.propertices文件,在里面配置

要转换的类型(java.utiils.xxx)=转换类的全路径(cn.x.xxx)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: