圣杯链接ID未发送回服务器



>我有一个GSP,呈现如下:

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.fizzIdLong)作为参数发送到该操作(例如 params.fizzId )。

当我运行它时,我得到一个NullPointerExceptionparams.fizzId转换为 Long,因为它为 null。

我能做些什么来完成这项工作?根据文档,我认为这就是id属性的用途,但似乎我用错了它。想法?

首先,您需要使从控制器返回的模型成为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>

相关内容

  • 没有找到相关文章

最新更新