struts2教程:12、自定义类型转换器
来源:互联网 发布:淘宝号查询 编辑:程序博客网 时间:2024/05/04 08:31
自定义类型转换器
有两种:1、局部。2、全局
java.util.Date类型的属性可以接收格式为2009-07-20的请求参数值。但如果我们需要接收格式为20091221的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。
import java.util.Date;
public class HelloWorldAction {
private Date createtime;
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Datecreatetime) {
this.createtime =createtime;
}
}
需要定义一个专门的类:
public class DateConverter extendsDefaultTypeConverter {
@Override public Object convertValue(Map context, Object value, Class toType) {
SimpleDateFormatdateFormat = newSimpleDateFormat("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;
}
}
将上面的类型转换器注册为局部类型转换器:(struts2提供了很多类型转换器的方法,这只是其中的一种)
在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,对于本例而言,文件的名称应为HelloWorldAction-conversion.properties。在properties文件中的内容为:
属性名称=类型转换器的全类名
对于本例而言,HelloWorldAction-conversion.properties文件中的内容为:
createtime= cn.itcast.conversion.DateConverter
自定义全局类型转换器
将上面的类型转换器注册为全局类型转换器:
在WEB-INF/classes下放置xwork-conversion.properties文件(即放在src目录下)。在properties文件中的内容为:
待转换的类型=类型转换器的全类名
对于本例而言,xwork-conversion.properties文件中的内容为:
java.util.Date= cn.itcast.conversion.DateConverter
全局类型转换器处理的是一种格式。如果处理的数据时多种格式要用局部变量转换器。
- struts2教程:12、自定义类型转换器
- struts2-12自定义类型转换器
- Struts2自定义类型转换器
- struts2 自定义类型转换器
- struts2自定义类型转换器
- Struts2自定义类型转换器
- Struts2自定义类型转换器
- 自定义Struts2类型转换器
- struts2自定义类型转换器
- struts2 自定义类型转换器
- struts2 自定义类型转换器
- Struts2自定义类型转换器
- struts2自定义类型转换器
- struts2自定义类型转换器
- Struts2自定义类型转换器
- Struts2自定义类型转换器
- struts2 自定义类型转换器
- Struts2自定义类型转换器
- 【Android游戏开发之九】(细节处理)触屏事件中的Bug解决方案以及禁止横屏和竖屏切换!
- windows 添加应用程序到服务
- ios开发学习--文字视图(Text)效果源码分享--系列教程
- linux 中断与时钟
- 读书笔记《30天自制操作系统》day07
- struts2教程:12、自定义类型转换器
- C 算法精介----链表(1)
- 用大数加法模板计算很大的斐波那契数列
- java高新技术(二)
- lamp环境的配置
- 使用centos linux-2.6.32-220.23.1.el6源码编译时出现的问题及其解决方法
- 10大最毒的路边小吃
- 浅谈VB6中的自定义类的使用
- 八个最常用的正则表达式