Grails <g:actionsubmit>重定向到GSP而不是动作</g:actionsubmit>

时间:2010-08-13 11:20:24

标签: grails gsp

我在控制器“X”上创建了一个名为“updateWithHistory”的新动作,类似于更新。当我从脚手架edit.gsp页面使用此代码时:

<span class="button"><g:actionSubmit class="save" action="updateWithHistory" value="${message(code: 'default.button.updateWithHistory.label', default: 'Persist')}" /></span>

我收到404错误:

The requested resource (/GPECAN/WEB-INF/grails-app/views/X/updateWithHistory.jsp) is not available.

我不知道Grails为什么要寻找视图而不是动作。我不需要该操作的视图,因为它重定向到现有操作(列表,编辑等)。

默认的脚手架操作(如“更新”)不会发生这种情况。有什么想法吗?

(当然,如果我创建一个名为“updateWithHistory.gsp”的视图,则会显示视图,但操作永远不会执行...我很绝望)

3 个答案:

答案 0 :(得分:1)

根据您的目标,有两种方法可以解决您的问题。 您必须知道的第一件事是引用文档:

  

另请注意,此标记依赖于   多部分解析器能够   检查包含的参数   mulitpart请求。如果你禁用了   通过设置解析器   grails.disableCommonsMultipart为true   在Config.groovy中,actionSubmit会   不行。

所以有两个解决方案:

  1. g:form tag
  2. 中设置'controller'属性
  3. 创建网址映射为described here
  4. P.S。如果您想通过浏览器查看任何“可渲染”结果,则必须使用控制器的动态渲染方法:)

答案 1 :(得分:1)

您的控制器可能存在错误。完成操作后,您需要render某事或redirect。好好看看脚手架控制器代码。

尝试在 updateWithHistory 操作结束时添加以下内容。

render(view: "edit", model: [yourDomainInstance: yourDomainInstance])

答案 2 :(得分:0)

好的,我只是傻了。这是我控制器中一个无法捕获的错误;错误情况是偶然的,但没有特定的视图来处理它,所以控制器试图重定向到一个未显示的默认视图。

很抱歉我的愚蠢并感谢你的帮助