`

分享一个struts2日期转换器的代码

    博客分类:
  • java
阅读更多

struts的日期转换器对不同电脑会作出不同的转换,在开发人员电脑上没有问题,但到了部署服务器上却总是报类型无法转换的错误。

网上找了很多资料都没有适合自己的日期转换器。

只能自己参考着写一个了。

了解了struts2转换器的原理后其实也不难。

下面分享下,一个转换没有时分秒日期,和有时分秒日期两种类型的日期转换器代码。

package com.iemis.dye.conver;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;

public class DateConverter extends StrutsTypeConverter {  
    private static final String FORMATDATE = "yyyy-MM-dd";
    private static final String FORMATTIME = "yyyy-MM-dd HH:mm:ss";
    
    @SuppressWarnings("unchecked")
	@Override  
    public Object convertFromString(Map context, String[] values, Class toClass) {
    	if (values == null || values.length == 0) { 
            return null; 
        }
    	//有时分秒的要先转换
    	SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME); 
        Date date = null;   
        String dateString = values[0];
        if (dateString != null) {
        	try {   
                date = sdf.parse(dateString);   
            } catch (ParseException e) {   
                date = null;   
            }
            if(date == null)
            {
            	sdf = new SimpleDateFormat(FORMATDATE);
            	try {   
                    date = sdf.parse(dateString);   
                } catch (ParseException e) {   
                    date = null;   
                }
            }
        }
        return date;   
    }   
  
    @SuppressWarnings("unchecked")
	@Override  
    public String convertToString(Map context, Object o) {
    	if (o instanceof Date) {
    		SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME); 
    		return sdf.format((Date)o);
    	} 
    	return ""; 
    }

}

 

 xwork-conversion.properties

中加入java.util.Date=com.iemis.dye.conver.DateConverter

特别提醒:java.util.Date要写全名,有很多人可能容易写成java.lang.Date

 

分享到:
评论

相关推荐

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    《深入浅出Struts2》是广受赞誉的Struts2优秀教程.它全面而深入地阐述了Strut2的各个特性,并指导开发人员如何根据遇到的问题对症下药。选择使用最合适的特性。作者处处从实战出发。在丰富的示例中直观地探讨了许多...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    外文翻译 stus MVC

    Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...

    JAVA WEB典型模块与项目实战大全.part2(第二卷)

    第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...

    JAVA WEB典型模块与项目实战大全.part4

    第1版 (2011年1月1日) 平装: 922页 由于上传限制 共分成4卷 请手动搜索其它3卷下载 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 实现各种框架的集成 第2篇 典型...

    JAVA WEB典型模块与项目实战大全.part3(第三卷)

    第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...

    JAVA WEB典型模块与项目实战大全.part1(第一卷)

    典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 下面是其它三卷的链接 第二卷: http://download.csdn.net/detail/jincheng52rmb/5349256 第三卷: ...

    java面试宝典

    72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73、线程的基本概念、线程的基本状态以及状态之间的关系 18 74、sleep() 和 wait() 有什么区别? 18 75、socket通信...

    千方百计笔试题大全

    72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73、线程的基本概念、线程的基本状态以及状态之间的关系 18 74、sleep() 和 wait() 有什么区别? 18 75、socket...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    这是2个压缩包中的第二个,请一并将第一个下载后,随便解压其中一个即可。 如果只希望下载其中一部分即可阅读,可下载另一个pdf: http://download.csdn.net/detail/oqqsun12345678/5215337 内容简介 出版日期: ...

    JAVA面试题最全集

    编写代码实现一个线程池 40.描述一下JVM加载class文件的原理机制? 41.试举例说明一个典型的垃圾回收算法? 42.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 43.请写一个java...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    这是2个压缩包中的第一个,请与第二个一并下载,然后随便解压其中一个即可。如果只想下载其中一部分,可下载pdf: http://download.csdn.net/detail/oqqsun12345678/5215337 这个pdf是665页中的前404页,后面200多页...

    java基础题 很全面

    2. 我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 30 3. 请问输出什么,为什么? 30 4. 编程题: 写一个Singleton出来。 31 5. 设计4个线程,其中两个线程每次对j...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第三部分提供了一个jsf+ejb 3+ jpa整合开发的项目:电子拍卖系统。这个项目包括5个实体,这5个实体之间具有复杂的关联关系,而且业务逻辑也相对复杂,希望让读者理论联系实际,真正将jsf+ejb 3+jpa整合真正运用到...

    freemarker总结

    上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回一个集合对象,而item是一个任意的名字,就是被迭代输出的集合元素.此外,迭代集合对象时,还包含两个特殊的循环变量: item_index:...

Global site tag (gtag.js) - Google Analytics