Grailsには、URLクエリ文字列からドメインプロパティをコピーするきちんとした方法がありますか?
-
21-09-2019 - |
質問
Grailsにはドメインオブジェクトのマップベースのコンストラクターがあり、URLのパラメーションを渡すことができ、このような内省を使用して適切なフィールド設定をオブジェクトに適用できます。
myDomainInstance = new MyObject(params)
私は、マップコンストラクターが動作しなければならないのと同じように、パラメージを取得し、既存のオブジェクトにそれらを適用し、値を更新するのに同等の方法があるかどうか疑問に思っていました...
myDomainInstance = params
また
myDomainInstance = fromParams(params)
私はただ希望に満ちた考えですか、それともそのようなことが存在しますか?私はそれを自分でコーディングすることができますが、それがすでに存在している場合はそうではありません。
ありがとう
解決
から改作 Grailsユーザーガイド:
obj = MyObject.get(1)
obj.properties = params
詳細については、コントローラーセクションの下にある「Params」のドキュメントをご覧ください。
他のヒント
それは本当にあなたがやろうとしていることに依存しますが、同等のアプローチはデータバインディングを使用します。
def sc = new SaveCommand()
bindData(sc, params)
これにより、カスタムバインディングを使用することの利点が得られます。日付形式がデフォルトの形式ではない場合は、次のような豆を介して再定義できます。
public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
public void registerCustomEditors(PropertyEditorRegistry registry) {
registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
}
所属していません StackOverflow