加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grails – 显示flash消息

发布时间:2020-12-15 07:33:21 所属栏目:百科 来源:网络整理
导读:我是Grails的新手,我有一个问题对大多数人来说应该很容易. 我有一个显示对象列表的页面.如果在删除对象时存在DataIntegrityViolation,我想显示一条消息.我在做的是: def delete() { def instanceToDelete= Myobject.get(params.id) try { instanceToDelete.
我是Grails的新手,我有一个问题对大多数人来说应该很容易.

我有一个显示对象列表的页面.如果在删除对象时存在DataIntegrityViolation,我想显示一条消息.我在做的是:

def delete() {

    def instanceToDelete= Myobject.get(params.id)
    try {
        instanceToDelete.delete(flush: true)
        redirect(action: "list",id: params.id)
    }
    catch (DataIntegrityViolationException e) {
        flash.message = "some message"
        //I want to refresh the div containing the flash.message here
    }
}

这是应该显示flash消息的位置:

<g:if test="${flash.message}">
  <div class="alert alert-error" style="display: block">${flash.message}</div>

对不起 – 我知道这是一个愚蠢的问题,但我真的找不到解决方案.

解决方法

flash对象是一个存储键/值对的Map,因此您可以为错误消息定义自己的键.例如:

try {
    instanceToDelete.delete(flush: true)            
    flash.message = "successfully deleted object"
 }
 catch (DataIntegrityViolationException e) {
    flash.error = "could not delete object"            
 }
redirect(action: "list",id: params.id)

然后,您可以检查包含错误密钥的Flash对象,并为该类消息使用不同的样式:

<g:if test="${flash.error}">
  <div class="alert alert-error" style="display: block">${flash.error}</div>
</g:if>
<g:if test="${flash.message}">
  <div class="message" style="display: block">${flash.message}</div>
</g:if>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读