我是Grails的新手,我有一个问题对大多数人来说应该很容易.
我有一个显示object列表的页面.我想,如果有一个显示的消息DataIntegrityViolation时object被删除.我在做的是:
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
}
}
Run Code Online (Sandbox Code Playgroud)
这是应该显示flash消息的位置:
<g:if test="${flash.message}">
<div class="alert alert-error" style="display: block">${flash.message}</div>
Run Code Online (Sandbox Code Playgroud)
对不起 - 我知道这是一个愚蠢的问题,但我真的找不到解决方案.
hit*_*ty5 19
该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)
Run Code Online (Sandbox Code Playgroud)
然后,您可以检查flash包含error密钥的对象,并为该类消息使用不同的样式:
<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>
Run Code Online (Sandbox Code Playgroud)
// backend code example
def save () {
if(params.name) {
.
.
object.save();
flash.message = "Saved successfully"
}
else {
flash.message = "Saved fail"
}
// HTML example
<g:if test="${flash.message}">
<div class="update_message" role="status">${flash.message}</div>
</g:if>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30225 次 |
| 最近记录: |