struts2自定义全局和局部类型转换器

 

 

继承一、自定义类型转换器
1.局部类型转换器
声明一个类继承DefaultTypeConverter 或继承StrutsTypeConverter
重写converValue方法
例:

public class Dateconverter extends DefaultTypeconverter{
@Override
public object convertValue(Map 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;
  }
}
public class StringToDate extends StrutsTypeConverter {
	@Override
	public Object convertFromString(Map arg0, String[] values, Class arg2) {
		//values为什么是数组。假设页面用复选框传值,所有的值就会存放在数组中
        //arg2 为目标类型
		if(arg2==Date.class)//目标类型和时间类型相等说明要转换时间。
		{
			Date d=new Date(values[0]);
			return d;
		}
		return null;
	}
	
	@Override
	public String convertToString(Map arg0, Object arg1) {
		// TODO Auto-generated method stub
		return null;
	}
}


2.在Action类所在的包下放置(“action的类名”-conversion.properties)文件,后面
的-conversion.properties是固定的写法。
3.在properties文件中的内容为:(要转换的Action)属性名称=定义的类型转换器类(带包名)

time=什么包下的.DateConverter




2.全局类型转换器
基本和局部差不多就是把属性文件放在src跟目录下
属性文件名必须改成xwork-conversion.properties
在properties文件中的内容为:待转换的类型=定义的类型转换器类(带包名)

java.util.Date=什么包下的.DateConverter

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智海深渊

对您有帮助给点鼓励吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值