grails 選択ドロップダウンでエントリを事前選択する際に問題が発生しています。テーブルがあり、各行にドロップダウンがあります。
表の行は ag:each によって定義されます。
<g:each in="${fooList}" status="i" var="fooInstance">
この各行には、このオブジェクトのフィールドがあります。これを Foo! と呼びましょう。
String name
String age
Bar xyz
問題は最後の列にあります。オブジェクトの中に別のオブジェクト (バー xyz) があります。現在の Foo でこの Bar (ドメイン オブジェクト) を変更できるようにしたいと考えています。ただし、ページが読み込まれると、Foo には既に Bar が含まれている場合があります。
事前入力されたサブオブジェクトに選択を結び付けるにはどうすればよいですか? 選択には、サブオブジェクトの可能な値 (現在利用可能なすべてのバー) が含まれていますが、バインディングが機能していません!
<td>${fieldValue(bean: fooInstance, field: "name")}</td> //this is fine
<td><g:select from="${Bar.list()}" name="xyz"
optionValue="${fooInstance.xyz}" value="${fooInstance.xyz.id}"
optionKey="id" noSelection="['':'-Choose a Bar-']" /></td>
何か案は?それが十分に明確であることを願っています。他に情報が必要な場合はお知らせください。
ありがとう、トニー
ちなみに、取得したスタックトレースは次のとおりです。
MissingMethodException が原因: メソッドの署名がありません: xxxxxxxxx.Bar.getAt() は引数の型に適用できます: (xxxxxxx.Bar) 値: [aaablahblah] 可能な解決策: getAt(java.lang.String)、getAll()、getId( )、getAll([Ljava.lang.Long;)、getAll(java.util.List)、get(java.io.Serializable)