Struts2.3.7技术的汇总之三(类型…
2015-12-24 10:27
323 查看
package cn.itcast.web.struts.converters; 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 { @Override public Object convertValue(Map context, Object value, Class toType) { // 这个转换器可以实现双向转换,即服务端打给客户端的数据以及客户端 给服务端的数据,如果是该类型 // 就使用类型转换器; if (value != null) { SimpleDateFormat sdf = new SimpleDateFormat("yyyymmdd"); // 首先判断我们要转换的类型是否是我们需要的 if (toType == Date.class) { // 将表单中的数据用一个数组封装,为什么药用数组封装能? 为如果表单页面使用的是复选框,很容易出现 // 多个同名参数,服务器为了考虑所有情况就用一个数组来接受; String[] values = (String[]) value; if (values[0] != null && "".equals(values[0].trim())) { try { return sdf.parse(values[0]); } catch (ParseException e) { throw new RuntimeException(e); } } } if (toType == String.class) { Date date = (Date) value; return sdf.format(date); } } return null; } }
配置文件内容:
student.birthday=cn.itcast.web.struts.converters.DateTypeConverter
注意这是局部类型转换器,student.birthday是表示action中有一个student字段,student字段又有一个birthday字段,是对这个属性进行类型转换的;这里需要注意的地方是,局部类型转换的命名规则是ActionClassName-converter.xml
比如这里是RegisterAction.converter.xml;这个文件方法action目录下
全局类型转换器的命名规则为xwork-converter.xml这是固定写法,这个文件放在src目录下;
转换器要注意的地方:一是父类的选取,建议选用xwork的,而对于value为什么需要转换成一个字符串数组要清楚;然后就是SimpleDateFormat 式化输入的使用,顺便提一句,在struts.xml中配置action时,也可以配置类型转换器;
转发至微博
转发至微博
相关文章推荐
- Struts2.3.7技术的汇总之二(注册…
- 黑马程序员--Struts2的常量
- 黑马程序员--Struts2复习笔记
- JDK1.5并发库笔记和总结
- Java一些实用的类(持续更新)
- Java多线程基础知识回顾与总结;
- Java基础笔记的复习与整理---Socke…
- Java基础笔记的复习与整理--集合框…
- JDK1.5新特性回顾
- 在学习Java高级应用中碰到的一些问…
- 黑马程序员--Spring框架方方面面之…
- Java开发两种Tree实现
- Spring MVC拦截器+注解方式实现防止表单重复提交
- 异常管理 - 采用模板方法优化try-catch-finally
- java document对象详解
- java知识点之静态导入
- Spring Boot——开发新一代Spring应用
- Spring MVC jsp 嵌入子页面的两种方式
- mybatis+spring+struts2框架整合
- LRU缓存实现(Java)