4

次の方法で、基本クラス (2 レベル) までプロパティをシリアル化できます。

public class BaseRoot{
 String prop1; //getter and setter
}

public class SubClass extends BaseRoot{
 String prop2; //getter and setter
}

public class ActionClass extends SubClass{
 String prop3; //getter and setter
}

struts json では、次を使用してすべてのプロパティをシリアル化できます

<result type="json">
 <param name="ignoreHierarchy">false</param> //This will allow parent to be serializable
 <param name="excludeProperties">price,description</param> //Exclude parameters
</result>

しかし、クラス ActionClass と SubClass をシリアライズしたいだけです。BaseRoot および BaseRoot クラスによって拡張される他のクラスをシリアライズしたくありません。プロパティを除外できることを知っています。しかし、クラス全体をシリアル化から除外したいと考えています。

4

1 に答える 1

0

デフォルトの機能ではそれを行うことはできません。

独自の結果タイプ、または場合によってはシリアライザーを作成する必要があります。これは、既存の結果タイプまたは新しい結果タイプのいずれかにプラグインできる可能性がありますが、どちらが簡単かはわかりません。

そうは言っても、これの設計/必要性は少し大雑把だと思います。おそらく、具象クラスをハックするのではなく、Presenter、Decorator、Facadeなどが必要です。

于 2013-04-12T17:44:46.287 に答える