Ale*_*ier 7 error-handling grails render grails-validation grails-constraints
我无法从命令对象中呈现错误.它做得很好,但我的.gsp视图不会渲染我提出的错误.
这是我的控制器动作:
def handleModifyProfile2 = { CreditProviderModificationCommand cpmc -> // bind params to the command object
if (cpmc.hasErrors()) {
flash.message = "Error modifying your profile:"
redirect(action: "modifyProfile", params: [creditProvider : cpmc])
} ...
Run Code Online (Sandbox Code Playgroud)
以下是我尝试在.gsp视图中呈现错误的方法:
<g:hasErrors bean="${creditProvider}">
<div class="errors">
<g:renderErrors bean="${creditProvider}" as="list" />
</div>
</g:hasErrors>
Run Code Online (Sandbox Code Playgroud)
如何才能在视图中显示错误?
您无法使用重定向发送命令params.你有几个选择:
render()在错误条件而不是redirect():
if(cpmc.hasErrors()) {
render(view: 'profile', model: [creditProvider: cpmc])
}
Run Code Online (Sandbox Code Playgroud)
这是你正在做的最常见的习语.
将命令存储在会话中以将其保留在重定向中:
if(cpmc.hasErrors()) {
session.cpmc = cpmc
redirect(...)
}
// and in your action
def cpmc = session.cpmc ?: null
render(view: 'profile', model: [creditProvider: cpmc])
Run Code Online (Sandbox Code Playgroud)
这个选项有点值得怀疑.如果操作不正确,您可能会污染会话并使对象闲置,占用内存.但是,如果正确完成,它可能是实现post-redirect-get的一种不错的方法.
| 归档时间: |
|
| 查看次数: |
3659 次 |
| 最近记录: |