0

我在控制器“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”的视图,则会显示该视图,但该操作永远不会执行......我很绝望)

4

3 回答 3

1

您的控制器中可能有错误。执行完操作后,您需要渲染某些内容或重定向。好好看看脚手架控制器代码。

尝试在updateWithHistory操作的末尾添加以下内容。

render(view: "edit", model: [yourDomainInstance: yourDomainInstance])
于 2010-08-13T12:09:53.393 回答
1

有两种方法可以解决您的问题,具体取决于您想要实现的目标。您必须知道的第一件事是引用文档:

另请注意,此标记依赖于多部分解析器来检查多部分请求中包含的参数。如果通过在 Config.groovy 中将 grails.disableCommonsMultipart 设置为 true 来禁用解析器,则 actionSubmit 将不起作用。

所以有两个解决方案:

  1. 在g:form 标签中设置“控制器”属性
  2. 如此处所述创建 URL 映射

PS如果您想通过浏览器查看任何“可渲染”结果,您必须使用控制器的动态渲染方法:)

于 2010-08-13T11:50:33.897 回答
0

好吧,我只是愚蠢。这是我的控制器中未发现的错误;发生了错误情况,但没有特定的视图来处理它,因此控制器尝试重定向到不存在的默认视图。

非常抱歉我的愚蠢并感谢您的帮助

于 2010-08-14T08:16:26.920 回答