0

Grails 2.2 での作業

ビューで不明な数の CommitteeMembers を処理できるようにする必要がある状況があります。これらは作成と表示の両方が必要です。

それぞれに、通常の属性 (名前、住所、連絡先情報、ユーザー ID) があります。

フォーム フィールドに同じ名前を付けると、Grails がコレクションを返し、繰り返し処理できることを理解しています。ただし、この場合、次の状況に直面しています。

cm_firstname

cm_lastname

cm_address

cm_email

cm_userid

これは、これらの各フィールドのコレクションが与えられるということですか? さまざまな名を正しい姓などと関連付ける方法がないため、これはあまり役に立ちません。

私は Grails を楽しんでおり、フィードバックを楽しみにしています。

4

2 に答える 2

0

私が何をしているのか、それが最良の選択肢であるかもしれないし、そうでないかもしれないことをお話しします. 私がこれを行う主な理由は、データバインディングが好きではないからです。

あなたの例では、フィールドに「cm.firstName、cm.lastName、cm.address、cm.email、cm.userId」という名前を付けます。

サービスを利用している場合:

GrailsWebRequest webUtils = WebUtils.retrieveGrailsWebRequest()

List committeeMembers = [].withDefault {new GrailsParameterMap([:], webUtils.getCurrentRequest())}

コントローラーで:

List committeeMembers = [].withDefault {new GrailsParameterMap([:], request)}

それで

params.cm.each { k, v ->
    if (v instanceof String[]) {
        v.eachWithIndex { val, idx ->
            committeeMembers[idx]."$k" = val
        }
    }
    else {
        committeeMembers[0]."$k" = v
    }
}

次に、次のことができます。

committeeMembers.each {
    <Create from it.firstName, it.lastName, etc>
}
于 2013-05-21T18:49:47.450 に答える