2010-12-03 6 views
1

いくつかの手順でドメインクラスを作成しようとしています。新しいパラメータを既存のフロー変数に「マージ」するのに問題があります。あなたは私が現在それをやっている(つまり、個別にparamsオブジェクトからドメインクラスのフィールドを設定している)を見ることができます。Grails webflow:新しいパラメータセットを既存のフロー変数とマージする

これを行うより良い方法はありますか?

class UserController { 
    def scaffold = User 

    def index = { 
     redirect(action:'registration') 
    } 
    def registrationFlow = { 
     register1 { 
      on("continue") { 
       transient user = new User(params) 
       flow.user = user 
       if(!user.validate(['loginName', 'password'])) { 
        return error() 
       } 
      }.to "register2" 
     } 
     register2 { 
      on("register") { 
       transient user = flow.user; 
       //TODO: is there a better way to merge the flow.user with the params? 
       user.firstName = params.firstName; 
       user.lastName = params.lastName; 
       user.preferredEmail = params.preferredEmail; 
       if(!user.validate()) { 
        return error() 
       } 
      }.to "registerFinal" 
      on("return").to "register1" 
     } 
     registerFinal() 
    } 
} 

答えて

0

あなたは、ページごとに許可されるフィールドの配列を定義し、binddataを使用して、これらのフィールド名に制限することができます:

def validFieldsRegister2 = ["firstName", "lastName", "prefferedEmail"] 
bindData(user, params, [include: validFieldsRegister2]) 
+0

ニース..働いています。 – mlathe

関連する問題