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()
だけが必要なので、この方法だけでのシリアル化は避けたいfoo1
foo2
foo3
- この方法ではと
list2()
だけが必要なので、この方法だけでのシリアル化は避けたいfoo1
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>
ありがとう