我有一个普惠制,呈现如下:
class MyController {
def start() {
Widget widgetr = getSomehow()
render(
view: "test",
model: widget
)
}
def doSomething() {
long fizzId = params.fizzId as Long
// do something with 'fizzId'...
}
}在普惠制中,我有一个g:link
<g:link action="doSomething" id="${widget.fizzId}">Click me to do something!</g:link>当用户单击该链接时,我希望执行MyController#doSomething操作,并希望将widget.fizzId (Long)作为param发送到该操作(例如,params.fizzId)。
当我运行它时,我会得到一个NullPointerException,将params.fizzId转换为Long,因为它为null。
我能做些什么才能让这件事成功?根据文档,我会认为这就是id属性的目的,但似乎我使用它不正确。想法?
发布于 2014-11-28 19:11:01
首先,您需要使您从控制器返回的模型成为Map实例。
def start() {
Widget widgetr = getSomehow()
render(
view: "test",
model: [widget: widgetr]
)
}在link标记中,需要设置params属性而不是id属性,因为要发送的参数不是id
<g:link action="doSomething" params="${[fizzId: widget.fizzId]}">
Click me to do something!
</g:link>https://stackoverflow.com/questions/27194222
复制相似问题