1

我有一个 Struts 2 应用程序,我正在使用 JSON 将信息发送到基于 Ajax 的客户端。现在负载模型发生了一些变化,变得非常复杂,应用程序太慢了。所以我需要减少在每种情况下序列化的字段。所以我有这样的事情:

使用某些方法检索对象列表的一些操作:

public class FooAction{
    private List<FooObject> fooObjects;

    public List<FooObject> list1(){ ... };

    public List<FooObject> list2(){ ... };

}

例如模型中的这个对象。

public class FooObject{
    private String foo1;
    private String foo2;
    private String foo3;
    private String foo4;
}

在该模型中,假设我在来自 Ajax 的任何调用中都不需要第 4 个属性,因此我添加了 JSON 注释以避免它被序列化。

public class FooObject{
    private String foo1;
    private String foo2;
    private String foo3;
    private String foo4;

    @JSON(serialize=false)
    public String getFoo4(){...}
}

问题是这样的。

  • list1()我只需要foo1and的方法foo2中,所以我想避免foo3只在这个方法中序列化
  • list2()我只需要foo1and的方法foo3中,所以我想避免foo2只在这个方法中序列化

所以问题是它是否是一种简单的方法来自定义每个方法中应该序列化哪些属性。如果我可以自定义它,例如在 struts 的 xml 中,那就太好了:

<action name="list1" class="fooObject" method="list1">
    <result type="json"/>
</action>

<action name="list2" class="fooObject" method="list2">
    <result type="json"/>
</action>

谢谢

4

1 回答 1

3

您可以查看文档的自定义序列化和反序列化部分struts2。我认为这会对你有所帮助。

于 2012-07-19T11:18:59.527 回答