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

时间:2013-03-04 12:52:58

标签: java struts2 struts2-json-plugin

我的网络应用程序使用struts2-json-plugin-2.2.1

我有一个动作,它暴露从DB加载的对象(通过休眠)。

此对象包含一个如此注释的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方法上找到任何注释,并且代理类属于"$$_javassist"类型而不是"$$EnhancerByCGLIB$$"作为其他情况......

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

你有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您没有指定注释属性的name。默认情况下,不会反序列化具有空名称的注释。如需进一步参考,请查看Apache docs

答案 1 :(得分:0)

btw我确认问题的根源。正如我之前所说,它驻留在使用的代理类中。在我的情况下 - 如果我加载对象(通过休眠),那么使用的代理是$$ _ javassist - 如果我获取对象(通过休眠),那么对象就是'代理,然后JSonWriter可以恢复注释 - >所以它能够像我注释那样格式化 -