【问题标题】:Grails <g:actionSubmit> redirects to GSP instead of actionGrails <g:actionSubmit> 重定向到 GSP 而不是 action
【发布时间】:2011-03-29 10:10:05
【问题描述】:

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

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

我收到 404 错误:

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

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

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

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

【问题讨论】:

  • 你能给我们X控制器中updateWithHistory方法的代码吗?

标签: grails gsp


【解决方案1】:

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

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

所以有两种解决方案:

  1. g:form tag 中设置“控制器”属性
  2. 创建 URL 映射为described here

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

【讨论】:

    【解决方案2】:

    您的控制器中可能存在错误。采取行动后,您需要renderredirect。好好看看脚手架控制器代码。

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-06
        • 2013-07-13
        • 2010-12-22
        • 2014-10-17
        • 1970-01-01
        • 2012-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多