1

ビューを作成するためのデータがコントローラーを介して渡される gsp テンプレートがあります。

def create = {
    def bookInstance = new Book()
bookInstance .properties = params
def map = getDefaultValues()
render(template: "create", model: [bookInstance : bookInstance ,
            title: map.title,
            somelist: somelist
            ....])

gsp テンプレート

 <g:select optionKey="id" from="${somelist}" name="somelist.id" value="${bookInstance ?.somelist?.id}" noSelection="['null': '']"></g:select>

現在、save メソッドでは、エラーが発生した場合、現在入力され検証済みのインスタンス (デフォルトの scaffold 実装) が返されます。

render(template: "create", model: [bookInstance : bookInstance ])

しかし、gsp (保存アクションからレンダリングされたエラー ページ) のフィールドは空です。の値を見ると理由がわかりますが"${somelist}"、save メソッドでは使用されていません。gspでnullをチェックして、利用可能なマップを使用するか、より良い方法を使用する必要がありますか(saveメソッドですべてのマップを渡すことはオプションではありません)..
事前に感謝します..

4

1 に答える 1

1

私はそれを理解しました.. create クロージャーにあったのと同じマップを渡す必要があります.. create でマップを渡す理由は、デフォルトのリストをオーバーライドしたかったからです.. bookInstance に入力された値のみが使用されますユーザーの選択を保持しますが、すべての値を保持するわけではありません..

于 2010-05-13T16:20:03.963 に答える