因此, Controller 将Race对象/模型的列表返回到 View 。
def addquestion(Long id){
def event = CompositeEvent.get(id)
[races: event.races]
}
唯一值得注意的是,这些Race模型具有属性“名称”。因此,我想用种族名称填充选择下拉框,但是我很难按照文档进行操作,所以我来这里是为了寻求专家的帮助。这是我所做的,但是我没有填充名称,但是输入类型。
<g:select name="asd" from="${races}" value="1" optionKey="name" />
我的理解是,from属性是我应该指向模型或列表(在我的情况下为“种族”)的位置,因为这是传递给 View 的Race对象的列表,而optionKey是指向该属性的属性要打印的对象。感谢您的帮助!谢谢!
最佳答案
根据docs,g:select
具有optionKey
和optionValue
这两个属性,它们会生成以下html:
<select name="{selectName}">
<option value="{optionKey}">{optionValue}</option>
<option value="{optionKey}">{optionValue}</option>
<option value="{optionKey}">{optionValue}</option>
</select>
i dont get the names populated but types
因为您没有设置
optionValue
,所以会出现默认的toString()
表示形式,这似乎就是您所谓的“类型”。下面的代码应该执行您想要的操作:<g:select name="races" from="${races}" value="1" optionKey="id" optionValue="name" />
关于grails - 如何填充grails gsp select(下拉框)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24963443/