struts2示例代码-自定义局部类型转换器和自定义全局类型转换器

局部把String类型的birthday变量转换成Date类型

新建一个class,在Superclass中点击Browse,在文本框里输入DefaultTypeConverter,最好选择com.opensymphony.xwork2.conversion.impl这一项,

新建好class后,右键Source里选择Override/Implement Methods选择convertValue(Map,Object,Member,String,Object,Class)

package cn.type.converter; //转换器的方法类

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 {
    public Object convertValue(Map context, Object value, Class toType) {
        // TODO Auto-generated method stub
        System.out.println("已经进入类型转换器");
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
        try{
            if(toType==(Date.class)){ //字符串向Date转换时
                String[] paramss= (String[]) value;
                return dateFormat.parse(paramss[0]); //以数组形式转换变量,当变量为一个时         
            }
            else if(toType==(String.class)){ //Date向字符串转换时
                Date date=(Date) value;
                return dateFormat.format(date);
            }
        }
        catch(ParseException e){}
        return null;
    }

}


package cn.action; //传参的方法
import java.util.Date;
public class HelloWordAction {
    private Date birthday;
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String execute() throws Exception{
        return "success";
    }
}

局部转换器要在要转换的变量类的同一个文件夹下新建File文件,命名为变量所在类的名字-conversion.properties

文件内容birthday=cn.type.converter.DateTypeConverter//birthday是要转换的变量名称,右边是重写的方法的全名,语句后不要加任何标点符号


全局转换器

只需要把HelloWordAction-conversion.properties改名为xwork-conversion.properties

并把这个文件放在所有类的根目录下,比如说src下

文件内容java.util.Date=cn.type.converter.DateTypeConverter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值