我在使用g:select
标记在gsp页面上填充域对象值时遇到了问题。
<g:select name="demo" id="demo"
value="${dm.id}"
noSelection="${['null':'Select..']}"
from="${dm}"
optionValue="${dm.type}"/>
在我的控制器中,我有一个从我的域中收集值的对象。我尝试在控制器中将此对象写为:
def d = Demo.getAll()
和def d = Demo.list()
在尝试使用g:select
标记时,这两个都返回了异常。错误是:
没有方法签名:Demo.getAt()适用于参数类型:(java.util.ArrayList)值:[[One,Two,Three,Four,Five]]
我只需删除g:select
标记并在gsp中写下以下内容即可让我的代码正常工作:
<select name="demo" id="dm">
<option value="">Select!</option>
<g:each in="${dm}" status="i" var="dm">
<option value="${dm.id}">${dm.name}</option>
</g:each>
</select>
但是,我想知道如何使用g:select
标记进行此操作,以供将来参考。
提前致谢!
答案 0 :(得分:3)
我在您的选择中看到两个问题:
<g:select name="demo" id="demo"
value="${dm.id}"
noSelection="${['null':'Select..']}"
from="${dm}"
optionValue="${dm.type}"/>
控制器操作
def someAction() {
def dm = Demo.get(params.id)
def demos = Demo.list()
[dm: dm, demos: demos]
}
查看
<g:select name="demo" id="demo"
value="${dm.id}"
noSelection="${['null':'Select..']}"
from="${demos}"
optionValue="type"/>