2012-01-05 20 views
1

私はかなりシンプルな操作をしようとしていますが、それは明らかに単純ではありません。私は、ドメインクラスを持っている:今、選択では、私のようなoptionValueとして正規表現の名前で、RegexRefインスタンスを一覧表示したいGrails selectはネストされたクラスの文字列を表示しません

class RegexRef { 
    int sequenceNumber 
    Product product 
    Regex regex 
} 

class Regex { 
    String name 
    String Regex 
} 

と別のクラス:

<g:select name="regexRef.id" from="${com.mycompany.RegexRef.list()}" optionKey="id" size="5" optionValue="regex.name" value="${actionRefInstance?.regexRef?.id}" /> 

しかし、これは機能しません。 ...私は、他の構造で、この誤方向を行うことができますcom.jetheaddev.RegexRef

<g:link controller="regexRef" action="show" id="${actionRefInstance?.regexRef?.id}">${actionRefInstance?.regexRef?.regex.name.encodeAsHTML()}</g:link> 

、それが正常に動作します: 例外メッセージ:いいえ、そのようなプロパティ:クラスのregex.nameをそれはスロー。 <g:select/>としてRegexRefのプロパティを取得しようとしているoptionValue="regex.name"

答えて

2

Regexクラスでnameプロパティを取得するには

regexRefInstance."regex.name" 

は行います

にoptionValue Closureを実行します
<g:select optionValue="${{it.regex.name}}"/> 

リスト内の各エントリを検索し、関連するnameプロパティを取得します。

+0

ありがとう、それは私が必要としたものです。それは私が推測している変数について、どこで選択リスト項目のプレースホルダー・オブジェクトですか? – Therealstubot

+1

これがあなたが求めているものなのかどうかは確かではありませんが、[g:select](http://grails.org/doc/latest/ref/Tags/select.html)のドキュメントでは 'optionKey 'descriptionは、それがあなたの' .list() 'の個々のエンティティであるbean上のプロパティであることを言います。さらに下の例では、私が与えた 'optionValue'' Closure'の答えを示すものがあります。 – schmolly159

関連する問題