grails – 显示flash消息

前端之家收集整理的这篇文章主要介绍了grails – 显示flash消息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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>

猜你在找的Flash相关文章