播放框架:使用列表/地图填充groovy模板中的下拉列表

时间:2012-06-08 21:59:02

标签: playframework

我正在使用play framework 1.2.3。如何(使用groovy模板)使用列表/地图中的值填充下拉列表(语法)?

2 个答案:

答案 0 :(得分: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。但也许它有用,或者你必须编辑一些东西。

答案 1 :(得分:1)

这很有效 - 希望它有所帮助。

控制器:     渲染(项目);

模板:          #{list items,as:'item'}      $ {} item.value     #{/}