Struts2类型转换

1.自定义类型转换器
  第一步:编写自定义的转换器类

Java代码 复制代码
  1. import java.text.ParseException;   
  2. import java.text.SimpleDateFormat;   
  3. import java.util.Date;   
  4. import java.util.Map;   
  5.   
  6. import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;   
  7. public class DateTypeConverter extends DefaultTypeConverter {   
  8.     @Override  
  9.     public Object convertValue(Map<String, Object> context, Object value, Class toType) {   
  10.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");   
  11.         try {    
  12.             if(toType == Date.class){//当字符串向Date类型转换时   
  13.                 String[] params = (String[]) value;// request.getParameterValues()    
  14.                 return dateFormat.parse(params[0]);   
  15.             }else if(toType == String.class){//当Date转换成字符串时   
  16.                 Date date = (Date) value;   
  17.                 return dateFormat.format(date);   
  18.             }   
  19.         } catch (ParseException e) {}   
  20.         return null;   
  21.     }   
  22. }  
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class DateTypeConverter extends DefaultTypeConverter {
	@Override
	public Object convertValue(Map<String, Object> context, Object value, Class toType) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
		try { 
			if(toType == Date.class){//当字符串向Date类型转换时
				String[] params = (String[]) value;// request.getParameterValues() 
				return dateFormat.parse(params[0]);
			}else if(toType == String.class){//当Date转换成字符串时
				Date date = (Date) value;
				return dateFormat.format(date);
			}
		} catch (ParseException e) {}
		return null;
	}
}

第二步:注册
将上面的类型转换器注册为局部转换器:
在action类所在的包下放置ActionClassName-conversion.properties文件 ,ActionClassName是action的
类名 ,后面的-conversion.properties是固定写法 ,
在ActionClassName-conversion.properties中的内容
属性名称=类型转换器的全名 ,如birthday=cn.itcast.type.converter.DateTypeConverter

2 . 全局类型转换器
   第一步:编写自定义的转换器类(和上面一样)
   第二步:注册
    在WEB-INF/classes下放置xwork-conversion.properties文件(即放在src根目录下,不要放到其它包下)
   。在properties文件中的内容为:
   待转换的类型=类型转换器的全名,如java.util.Date=cn.itcast.conversion.DateConverter

你可能感兴趣的:(java,Web)