0

Liferay 7 では、getter/setter を使用して新しいフィールドを使用して FooImpl.java (サービス ビルダーによって Foo テーブルから生成されたもの) をカスタマイズしました。

@ProviderType
public class FooImpl extends FooBaseImpl {

    private String toto;
    // and getter and setter

    public FooImpl() {
    }

}

このフィールドを追加するのは、次のメソッド (FooServiceImpl.java から抽出) の Web サービス レスポンスに必要だからです。

@JSONWebService(value = "get-foos", method = "GET")
@AccessControlled(guestAccessEnabled=true)
public List<Foo> getFoos(){
   ...
}

残念ながら、JSON 応答にはカスタム フィールド「toto」が含まれていません。

誰かがこれを行う方法を知っていますか?

4

2 に答える 2

2

ダニエレ、どうもありがとう。あなたが提供したドキュメントで答えを見つけました。

実際には非常に簡単です。注釈 @JSON(strict = false) をモデル オブジェクトに追加するだけで、すべてのカスタム属性がシリアル化されます。

@JSON(strict = false)
@ProviderType
public class FooImpl extends FooBaseImpl {

    private String toto;
    // and getter and setter

    public FooImpl() {
    }

}
于 2016-12-16T09:54:44.397 に答える
1

このwikiページを見てください。私はこのトピックについて直接の経験がありません。これが正しい方法かどうか教えてください。

https://web.liferay.com/it/community/wiki/-/wiki/Main/JSON+Serialization#section-JSON+Serialization-Strict+mode

于 2016-12-15T20:55:28.270 に答える