Grails:flash消息和错误

时间:2014-01-19 04:06:56

标签: grails flash-message

我无法显示验证错误

def saveTable() {
    def tableInstance = new Table(params)
    if (!tableInstance.save(flush: true)) {
        tableInstance.errors.each {
            flash.message = it //<---- this part
        }
        redirect(action: "listTable")
        return
    }

    flash.message = message(code: 'default.created.message', args: [message(code: 'table.label', default: 'Table'), tableInstance.id])
    redirect(action: "listTable")

flash消息似乎没有显示错误

如果错误显示在println it并且也有错误

,我试过了

我使用普通字符串flash.message = "a"对其进行了测试,它适用于我的脚本

<script type='text/javascript'>
        (function() {   
            <g:if test='${flash.message}'>
            $('document').ready(function(){
                $.gritter.add({
                    title: '',
                    text: '${flash.message}',
                    image: '',
                    sticky: false,
                    time: ''            
                });
                return false;
            });
            </g:if>
        })();
    </script>   

2 个答案:

答案 0 :(得分:2)

此代码在每次循环迭代中重置flash.message。

    tableInstance.errors.each {
        flash.message = it //<---- this part
    }

尝试组合这样的错误,例如

    tableInstance.errors.each {
        flash.message += it + "<br>"
    }

答案 1 :(得分:0)

我想知道你的意思是:

tableInstance.errors.allErrors.each {
    flash.message = it;
}

您可能会觉得这很有用:http://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/validation/Errors.html

此外,如果存在多个错误,则在此循环中分配闪存消息将覆盖它。也许你想以某种方式连接它们?