Struts2 json-plugin 解决日期时间格式带T的有关问题
Struts2 json-plugin 解决日期时间格式带T的问题
记录一下自己解决这个问题的过程,
1,百度一下,搜到了一个官方的解决方案:
也就是在get方法上加注解
@JSON(format="yyyy-MM-dd HH:mm:ss") public Timestamp getCreateDate() { return createDate; }
2,上面的方法是可以解决,但是这个注解必须要引入json-plugin插件的jar,
这样会出现两个问题,
第一:定义Bean的包中必须要引入json-plugin的jar
第二:本身只是一个Bean的定义,如果不是在Struts中用,还加了一个这样的注解,污染了代码
第三:所有的时间相关的都要加一遍,太费劲了
3,于是我就看官方关于这个插件的说明:http://struts.apache.org/docs/json-plugin.html
同样只是介绍了上面的方法,于是开始看源码,找到实现的原理看看有没有干净简单的方法来
统一处理,实在不行就把源码拿来自己修改修改,功夫不负有心人终于找到了如下代码:
org.apache.struts2.json.JSONResult public String getDefaultDateFormat() { return defaultDateFormat; } @Inject(required=false,value="struts.json.dateformat") public void setDefaultDateFormat(String defaultDateFormat) { this.defaultDateFormat = defaultDateFormat; }
是的,重点就在set方法上的注解(struts.json.dateformat),我猜测应该是用来设置时间格式的
3,修改struts.xml文件:
<struts> ...... <constant name="struts.json.dateformat" value="yyyy-MM-dd HH:mm:ss" /> ...... <struts>
4,测试一下,大功告成!!