Java org.apache.struts2.json.annotations.json不';不能显示正确的格式

Java org.apache.struts2.json.annotations.json不';不能显示正确的格式,java,struts2,struts2-json-plugin,Java,Struts2,Struts2 Json Plugin,我的web应用程序使用struts2-json-plugin-2.2.1 我有一个公开从DB(通过hibernate)加载的对象的操作 此对象包含带注释的java.util.Date字段: @JSON(format = "dd-MM-yyyy") @Column(name = "DATA_CREAZIONE", nullable = false) public Date getDataCreazione() { return this.dataCreazione; }

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

我有一个公开从DB(通过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
方法上找不到任何注释,并且代理类是
“$$$\u javassist”
类型,而不是
“$$EnhancerByGlib$$”

在同一个应用程序中,我有很多这样的情况,注释工作得很好。 我不明白其他课程有什么问题(或区别)


您有什么建议吗?

您没有指定注释属性的
名称。默认情况下,不反序列化名称为空的批注。有关更多参考资料,请查看。

顺便说一句,我确认问题的根源。正如我前面所说,它驻留在所使用的代理类中。在我的例子中-如果我加载对象(通过hibernate),那么使用的代理是$$\u javassist-如果我获取对象(通过hibernate),那么对象不被代理,然后JSonWriter可以恢复注释->因此它可以按照我注释的格式设置-

默认情况下,该插件使用自己的名称反序列化每个字段。您提到的标记“name”用于重命名特定字段名。例如:
@JSON(name=“newName4Field2”)公共字符串getField2(){return field2;}
将生成这个
{“field1”:“FIELD_1”,“newName4Field2”:“FIELD_2”,“testDate”:“05-03-2013”}
顺便说一句,我确认了问题的根源。正如我前面所说,它驻留在所使用的代理类中。在我的例子中-如果我加载对象(通过hibernate),那么使用的代理是$$\u javassist-如果我获得对象(通过hibernate),那么对象不会被代理,然后JSonWriter可以恢复注释->以便它能够按照我注释的格式进行格式化