org.apache.struts2.json.annotations.JSON 未显示正确的格式

问题描述 投票:0回答:2

我的网络应用程序使用

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$$"
...

在同一个应用程序中,我有很多这种情况,并且注释工作正常。 我不明白与其他课程有什么问题(或区别)。

你有什么建议吗?

java struts2 struts2-json-plugin
2个回答
0
投票

您没有指定注释属性的

name
。默认情况下,具有空名称的注释不会被反序列化。如需更多参考,请查看 Apache 文档


0
投票

顺便说一句,我确认了问题的根源。正如我之前所说,它驻留在所使用的代理类中。就我而言 - 如果我 load 对象(通过 hibernate),那么使用的代理是 $$_javassist - 如果我 get 对象(通过 hibernate),那么该对象不会被代理,然后 JSonWriter 可以恢复注释 - > 所以它能够按照我注释的方式格式化 –

© www.soinside.com 2019 - 2024. All rights reserved.