1

Play フレームワーク 1.2.3 を使用しています。Groovy テンプレートを使用して、リスト/マップからの値をドロップダウンに入力する (構文) 方法を教えてください。

4

2 に答える 2

2

CRUD を使用しています。自動的に実行されます。しかし、自分でやりたい場合は、タグテンプレートを見つけましたmodules\crud\app\views\tags\crud\relationField.html

%{ pName = 'object.' + _name + '.' + play.db.Model.Manager.factoryFor(_field.property.relationType).keyName() }%

#{field 'object.' + _name}
    <label for="${field.id}">
        &{_name}
    </label>

        <input type="hidden" name="${pName}" value="" />
        <select id="${field.id}" name="${pName}" multiple="yes">
            %{ _field.choices.each() { }%
            %{
                selected = false;
                if(field.error?.message != 'validation.required') {
                    if(params[pName]) {
                        selected = params.getAll(${pName}).contains(it._key().toString())
                    } else {
                        for (it2 in _value) {
                            if(it2._key() == it._key()) {
                                selected = true;
                            }
                        }
                    }
                }
            }%
            <option value="${it._key()}" ${selected ? 'selected="true"'.raw() : ''}>${it}</option>
            %{ } }%
        </select>

コントローラーが CRUD を拡張していないため、これがすぐに機能するかどうかはわかりません。しかし、おそらくうまくいくか、いくつかのものを編集する必要があります。

于 2012-06-08T22:06:51.353 に答える
1

これはうまくいきました - それが役に立てば幸いです。

コントローラー: render(items);

テンプレート: #{list items, as:'item'} ${item.value} #{/}

于 2012-06-11T00:15:30.920 に答える