您的位置:首页 > 编程语言 > Java开发

EXTJS+STRUTS+SPRING+HIBERNATE中日期问题的处理

2008-08-19 10:08 274 查看
因项目的需要,最近在研究EXTJS和SSH框架的整合问题,主要是研究EXTJS的使用,在这过程中发现对日期问题的处理不像想象的那样顺利,现在把遇到的问题写出来,仅供参考。

通常对日期的处理有两种方法:

一种是直接在数据库中使用字符类型,这样处理在写代码的时候相对简单,但对日后数据库中的数据进行维护时可能会涉及到日期的转换,所以对开发简单,但对维护可能会增加负担,这种情况的处理不需要过多讨论。

另一种是在数据库中用日期类型,但在使用EXTJS框架时,因前后台的数据传输是靠JSON或XML这样的字串形式,所以传到前台时实际是都变成了字串,但对日期类型如果直接传到前台的话总是无法显示(具体原因暂时还没找到,在以后的使用过程中继续留意这个问题),想了很多办法,最后想到是否需要在service类中将取到的日期类型的值转换成String类型,于是便使用toString()方法转换,这样又出现了个问题,控制台提示:

[WARN ][2008-08-19 10:22:58][org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)]:Unhandled Exception thrown: class java.lang.NullPointerException

出现空指针异常了,通过分析发现,原来是因为有些日期为null所致,null这样的基本类型是不能使用toString()方法的,所以会报错,要使用toString()就得先对日期类型进行非null的判断,这样代码写得很冗长,于是想到另一个解决办法,对所有的日期取出来后加上""(空串),这样既解决了日期类型转换为字符串类型的问题,又不会出现空指针异常,因为null+""是没问题的。

这个问题现在看起来挺简单,但在之前的分析解决过程中,还是费了很多心思的,网上找了很多文章,很少有提到怎么对日期问题进行处理的例子(那种直接在js里写数据进行测试的例子除外,那种情况下不存在这个问题),希望以上的内容能对各位有所帮助,也是自己对处理这个问题的一个小结。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: