【问题标题】:flash.message does not print message on the screen in grails 2.xflash.message 不在 grails 2.x 的屏幕上打印消息
【发布时间】:2013-10-23 05:55:02
【问题描述】:

我的功能是我有一个用户列表。当我单击任何用户编辑他的信息时,会弹出一个新窗口。 我更改了一些值并单击保存。现在值已正确保存,但未显示“保存成功”消息。

我的控制器代码是

if(user.save(flush:true)){
    user.messages = "${message(code: 'user.saved')}"
    flash.userInstance = user
    render ...
}

在 gsp 中我打印这样的消息

 <div id="messages">
        <g:if test="${userInstance?.messages}">
            <div class="message">${userInstance?.messages}</div>
        </g:if>
<div>

这里调用不进入 g:if 条件,因此不打印消息。 这在 grails 1.3 中运行良好,但在 2.2 中失败。为什么会这样?

【问题讨论】:

  • 你试过&lt;g:if test="${flash.userInstance?.messages}"&gt;吗?
  • 是的,我试过了,但 flash.userInstance 为空
  • 嗯,在flash.userInstance = user 之前放了一个 println。您的流程打印了用户?
  • 你在发送 Ajax 请求吗?
  • 不,这不是ajax请求

标签: grails grails-2.0 grails-2.2 grails-2.1


【解决方案1】:

这个例子对我有用。也许你有一些验证错误,尝试调试你的代码。

if(user.save(flush:true)){
        user.messages = "${message(code: 'user.saved')}"
        flash.userInstance = user
        render ...
}

在 gsp 中

<div id="messages">
   <g:if test="${flash?.userInstance?.messages}">
       <div class="message">${flash?.userInstance?.messages}</div>
   </g:if>
<div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-05
    • 2018-10-14
    • 1970-01-01
    • 2013-05-28
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多