Struts2 局部类型转换和全局类型转换实践

  1.先写一个自定义转换器

public class DataTypeConverter extends DefaultTypeConverter {


@Override
public Object convertValue(Map<String, Object> context, Object value, Class toType) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");


try {
if (toType == Date.class) {
String params[] = (String[]) value;
return df.parse(params[0]);
} else if (toType == String.class) {
Date date = (Date) value;
return df.format(date);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}

}

注意:DefaultTypeConverter 可继承自两个包都可行,她们分别是:com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter和ognl.DefaultTypeConverter。

2.在action中定义属性,并给于set和get:

private Date birthDay;


public Date getBirthDay() {
return birthDay;
}


public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}


public String execute() {
System.out.println(birthDay+"-----");
return "success";
}

在视图中输出${birthDay}

3.局部类型转换:在action所在的目录下新建xxxAction-conversion.properties文件,内容为:birthday=cn.xxx.type.DataTypeConverter.

  全局类型转换:在src下或WEB-INF下新建xwork-conversion.properties文件,内容为:java.util.Date=cn.xxx.type.DataTypeConverter.

4.在请求中传递日期字符串20151225

5.预期结果应该是上图中输出:20151225,并在控制台输出:20151225-----.但实际在控制台输出null----。这是啥原因造成的呢。


我把xwork-conversion.properties放在src路径下就ok了。。。。。所以之前应该是文件没有读取到。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值