我想将验证错误发送回另一个页面(添加),因此我对save
操作执行此操作:
@Transactional(readOnly = false)
def save(AddDomainCommand command) {
if (command.validate() && session.isLoggedIn && session.publisher) {
// do some stuff
return redirect(controller: 'Widget', action: 'generate')
}
log.info("Validation failed for $command")
respond view: "add", model: [domain: command]
}
javax.servlet.ServletException: Could not resolve view with name 'save' in servlet with name 'grailsDispatcherServlet'
如果我打印respond
的回复,我会null
!这就解释了为什么它会转到save
,因为这是行动名称的惯例。
我需要它回到它来自的视图(add.gsp
),但是grails respond
为空,因此默认为save.gsp
。
有什么想法吗?
答案 0 :(得分:2)
respond
使用不同的语法,当您希望能够支持基于mime类型的多种客户端类型时使用它,例如用于REST客户端的JSON和/或XML以及用于常规浏览器客户端的HTML / GSP。如果您只想使用add.gsp
呈现HTML,请使用render
:
render view: 'add', model: [domain: command]