自定义类型转换器

自定义类型转换器


// ?birthday=2008-10-10

f

.action


private Date birthday;

set\get 方法

如果参数是2008-10-10格式的日期,类型转换不会出错

但是如果参数是20081010格式的日期,就需要类型转换器


struts2有两种类型类型转换器

局部   只能对action中的某个属性进行类型转换

全局

----------------

类型转换器  ---

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;


public class DateTypeConverter extends DefaultTypeConverter

{

    public Object convertValue(Map<String,Object> context, Object value, Class toType){

          //return  super.convertValue(  context,   value,   toType  ); 

          SimpleDateFormate 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;

}

 

     }

}

  -------------------


将上述的转换器定义为局部转换器并注册,它只能对该actionName的类的某些属性进行转换。。。。

命名规则:

ActionClassName-conversion.properties

content

birthday = cn.itcast.type.converter.DateTypeConverter


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值