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,测试一下,大功告成酷!!

 

猜你喜欢

转载自fanyc.iteye.com/blog/2294575