5

私は現在Grailsアプリケーションに取り組んでおり、ページに選択リストを配置し、そのキーを1つの値に設定し、値を別の値に設定することを検討しています。関連するすべての要素のコードは次のとおりです。

ドメインオブジェクト:

class Cars {
  String carType
  String car
}

コントローラ:

def create() {
  List cars = Cars.list()
  [dealerInstance: new Dealer(params), cars: cars]
  render(text:"This site in curently under Maintainence!")
}

意見:

<g:select name="cars.id" from="${cars}" optionKey="${carType}" optionValue="${car}"/>

このコードを実行すると、リストにデータが入力されますが、データは次のようになります。

<select id="cars.id" name="cars.id">
  <option value="com.app.Cars : 1">com.app.Cars : 1</option>
  <option value="com.app.Cars : 2">com.app.Cars : 2</option>
  <option value="com.app.Cars : 3">com.app.Cars : 3</option>
</select>

そして私がこれを試すとき:

意見:

<g:select name="cars.id" from="${cars.car}" optionKey="${carType}" optionValue="${car}"/>

私は次のようになります:

<select id="cars.id" name="cars.id">
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Scoda">Scoda</option>
</select>

これは私が望んでいることではありません。アプリケーション内でそのデータを使用できるように、この選択リストに別のキー値ペアを設定できるようにしたいのですが、次のように生成したいと思います。

<select id="cars.id" name="cars.id">
  <option value="Saloon">Audi</option>
  <option value="Hatch Back">BMW</option>
  <option value="Estate">Scoda</option>
</select>

誰かがGrails内でこれをどのように達成するか教えてもらえますか?

4

1 に答える 1

8

これを試して:

<g:select id="cars.id" name="cars.id" from="${cars}" optionKey="carType" optionValue="car"/>

基本的に何が起こるか:

from属性を使用すると、タグは引数として渡したリストを繰り返し処理します。optionKeyとoptionValueは、現在のオブジェクト(イテレータによってアクセスされている)でアクセスする属性を表す文字列である必要があります。

于 2012-11-06T16:16:43.407 に答える