ActionForm使用java.util.Date数据类型解决方法(转)
来源:互联网 发布:徐州淘宝村 编辑:程序博客网 时间:2024/04/20 06:56
根据struts类型转换原理
Struts对ActionForm的自动搜集过程:
* 将页面数据放到map中,其中map中的key为页面中的名称,map中的value为页面中的value值
* 调用BeanUtils.setProperties方法,将map中的值逐个设置到ActionForm实例上,对于ActionForm中的每个属性
* 根据类型调用相应的Converter,然后调用相应的convert方法,将相应的字符串转换成ActionForm中指定的类型
解决方法
1.先申明一个转换类
package com.xx.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;
public class UtilDateConverter implements Converter {
@Override
public Object convert(Class type, Object value) {
// TODO Auto-generated method stub
System.out.println("UtilDateConverter.value=" + value);
if (value == null) {
return value;
}
if (value instanceof Date) {
return value;
}
Date d=null;
if (value instanceof String) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse((String)value);
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return d;
}
}
2.再使服务器启动设使给类注册进去
方法1.使用servlet注册
package com.xx.util;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.commons.beanutils.ConvertUtils;
/**
* 注册java.util.date转换器
* @author Administrator
*
*/
public class UtilDateConverterInitWithServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("UtilDateConverterInitWithServlet.init()");
ConvertUtils.register(new UtilDateConverter(), Date.class);
}
}
其中web.xml文件加上
<servlet>
<servlet-name>UtilDateConverterInitWithServlet</servlet-name>
<servlet-class>com.bjsxt.struts.UtilDateConverterInitWithServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
方法2.使用struts中的plug-in进行注册
package com.xx.util;
import java.util.Date;
import javax.servlet.ServletException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class UtilDateConverterInitWithPlugin implements PlugIn {
public void destroy() {
}
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
System.out.println("UtilDateConverterInitWithPlugin.init()");
ConvertUtils.register(new UtilDateConverter(), Date.class);
}
}
其中struts-config.xml文件加上
<plug-in className="com.xx.util.UtilDateConverterInitWithPlugin"/>
- ActionForm使用java.util.Date数据类型解决方法(转)
- String转java.util.Date
- java.util.Date java.sql.Date SimpleDateFormat String 转DATE
- java.util.Date与java.sql.Date 字符串转Date
- java.util.date|| java.sql.date||java.sql.timestamp 使用
- 关于java.util.Date的使用
- java.sql.Date与java.util.Date的权衡使用
- java.sql.Date和java.util.Date区别及使用
- XMLGregorianCalendar转java.util.date,java.util.date转java.sql.date
- java.sql.date 与 java.util.date(转)
- java.util.Date转java.sql.Date, 以及区别
- java.util.Date和java.sql.Date转换(转)
- js的【java.util.Date】转【String】
- java.util.Date
- java.util.Date用法
- java.util.Date
- java.util.Date
- java.util.Date相关
- 感谢某人
- 怎样把自己培养成为一个优秀的程序员
- Makefile中的变量
- 为ASP.NET MVC 2.0添加Razor模板引擎 (on .NET4)
- tomcat6.0配置(含配置视频下载)
- ActionForm使用java.util.Date数据类型解决方法(转)
- 黑莓bold模拟器无法上网问题之解决
- C#基础系列(8)-- 第三部分 面向对象相关 -- 类与结构(1)
- printf实现动态显示
- ZOJ 1337 Pi
- ADDS 硬盘分区
- ExtJS实用开发指南
- poll select 机制
- [活动]北京 PerlChina 七月聚会