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) 的视图,但 grailsrespond为空,因此默认为save.gsp. 有任何想法吗?

4

1 回答 1

2

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

render view: 'add', model: [domain: command]
于 2016-05-08T16:43:35.457 回答