我的网络应用程序使用
struts2-json-plugin-2.2.1
。
我有一个操作公开从数据库加载的对象(通过 Hibernate)。
该对象包含一个
java.util.Date
字段,其注释如下:
@JSON(format = "dd-MM-yyyy")
@Column(name = "DATA_CREAZIONE", nullable = false)
public Date getDataCreazione() {
return this.dataCreazione;
}
而不是得到:
"dataCreazione":"15-02-2013"
我明白了:
"dataCreazione":"2013-02-15T16:51:06"
在调试中,我注意到
org.apache.struts2.json.JSONWriter
类在 getDataCreazione()
方法上找不到任何注释,并且 proxy 类属于 "$$_javassist"
类型,而不是其他情况下的 "$$EnhancerByCGLIB$$"
...
在同一个应用程序中,我有很多这种情况,并且注释工作正常。 我不明白与其他课程有什么问题(或区别)。
你有什么建议吗?
顺便说一句,我确认了问题的根源。正如我之前所说,它驻留在所使用的代理类中。就我而言 - 如果我 load 对象(通过 hibernate),那么使用的代理是 $$_javassist - 如果我 get 对象(通过 hibernate),那么该对象不会被代理,然后 JSonWriter 可以恢复注释 - > 所以它能够按照我注释的方式格式化 –