我在控制器“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”的视图,则会显示视图,但操作永远不会执行...我很绝望)
答案 0 :(得分:1)
根据您的目标,有两种方法可以解决您的问题。 您必须知道的第一件事是引用文档:
另请注意,此标记依赖于 多部分解析器能够 检查包含的参数 mulitpart请求。如果你禁用了 通过设置解析器 grails.disableCommonsMultipart为true 在Config.groovy中,actionSubmit会 不行。
所以有两个解决方案:
P.S。如果您想通过浏览器查看任何“可渲染”结果,则必须使用控制器的动态渲染方法:)
答案 1 :(得分:1)
您的控制器可能存在错误。完成操作后,您需要render某事或redirect。好好看看脚手架控制器代码。
尝试在 updateWithHistory 操作结束时添加以下内容。
render(view: "edit", model: [yourDomainInstance: yourDomainInstance])
答案 2 :(得分:0)
很抱歉我的愚蠢并感谢你的帮助