自定义类型转换器converter

时间:2024-09-17 22:06:44

作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲

一、数据类型转换
在web应用程序中,数据存在两个方向上的转换:
1.当提交表单时
  表单数据以字符串的形式提交给服务器,在服务器端转换成不同的Java数据类型

2.当需要在页面显示数据时
  将不同的Java数据类型转换为对应的字符串格式显示输出

二、Struts2内置的类型转换
Struts2内置了常用类型的自动转换功能,支持常见数据类型与字符串之间的转换

三、自定义类型转换
1.编写自定义类型转换器,继承StrutsTyepConverter类
  重写convertFromString()和convertToString()方法

2.在src下创建xwork-conversion.properties
  配置类型转换器使用规则   如下写:

java.util.Date=cn.bdqn.regist.converter.DateConverter

package cn.bdqn.regist.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.opensymphony.xwork2.conversion.TypeConversionException; public class DateConverter extends StrutsTypeConverter{ private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //实现从字符串向目标Java对象进行转换
@Override
public Object convertFromString(Map ctx, String[] params, Class clazz) {
Date date=null;
try {
date=sdf.parse(params[0]);
} catch (ParseException e) {
//抛出TypeConversionException,向Struts2报告类型转换错误
throw new TypeConversionException(e);
}
return date;
} //实现从Java对象向字符串转换
@Override
public String convertToString(Map ctx, Object object) {
Date date=(Date)object;
return sdf.format(date);
} }