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

struts2之类型转换器的使用(明白原理,不用掌握)

2017-09-09 15:59 411 查看

以下内容,如有不妥,欢迎纠错

struts2之类型转换器的使用

类型转换器用到的不多,一般用在日期的转换上.

package converter;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;
/**
* 需求:
* 把表单的MM/dd/yyyy格式的数据转换成日期类型
* 把数据库中的本地日期格式,转换成MM/dd/yyyy形式输出
*
*自定义类型转换器
* 第一步:编写一个类,继承自StrutsTypeConverter,实现convertFromString,convertToString方法.
*
* @author John
*
*/

public class MyConverter extends StrutsTypeConverter {

//定义一个类型转换器
private DateFormat format = new SimpleDateFormat("MM/dd/yyyy");

/**
* 把字符串数组中的数据转换成日期类型
*
* 方法参数详解:
* Map context:是OGNL的上下文对象
* String[] values:要转换的数据类型
* Class toClass:目标类型
*/
public Object convertFromString(Map context, String[] values, Class toClass) {
//1.先看有没有数据
if(values == null || values.length == 0){
return null;
}
//2.取出数组中的第一个元素
String date = values[0];
//3.判断目标类型的字节码是不是日期类型
if(toClass == java.util.Date.class){
//4.使用DateFormat进行转换,并且返回转换后的结果
try {
return format.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}

}
return null;
}

/**
* 把日期类型的数据转换成字符串
*
* 方法参数详解:
* Object o:要转换的数据
*/
public String convertToString(Map context, Object o) {
//1.判断object是不是日期类型
if(o instanceof Date){
Date date = (Date)o;
//2.是日期类型,使用转换器转成指定格式的字符串,并返回
return format.format(date);
}
return null;
}

}

然后配置类型转换器

1.局部类型转换器:只能指定javabean中的属性用

按照属性来注册.在属性所属的javabean的包下,建立一个. properties文件.文件名称是javabean名称-conversion.properties

例如:User-conversion.properties

局部类型转换器声明方式是以使用的属性名称作为key,以类型转换器的全类名作为values

2.全局类型转换器(推荐)

在类路径的根路径下创建一个固定名称文件:xwork-conversion.properties

全局类型转换器的声明方式是以使用的数据类型(全类名)作为key,以类型转换器的全类名作为values

例如; java.util.Date = com.web.converter.MyTypeConverter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐