Grailsには、URLクエリ文字列からドメインプロパティをコピーするきちんとした方法がありますか?

StackOverflow https://stackoverflow.com/questions/2103149

質問

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));
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top