Grails`response`返回null

时间:2016-05-08 15:57:29

标签: grails grails-3.1

我想将验证错误发送回另一个页面(添加),因此我对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。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

respond使用不同的语法,当您希望能够支持基于mime类型的多种客户端类型时使用它,例如用于REST客户端的JSON和/或XML以及用于常规浏览器客户端的HTML / GSP。如果您只想使用add.gsp呈现HTML,请使用render

render view: 'add', model: [domain: command]