java - Grails标记actionSubmit导致404错误

标签 java forms grails http-status-code-404

我正在使用grails标记formactionSubmit,并且在提交时遇到404错误(我在使用Grails 2.3.7)。

在查看write.gsp时:

<g:form action="send">
    <g:actionSubmit value="test1"/>
    <input type="submit" value="test2"/>
</g:form>

呈现 View 时,结果为:
<form method="post" action="/messaging/send">
    <input type="submit" value="test1" name="_action_test1">
    <input type="submit" value="test2">
</form>

在 Controller 处:
class MessagingController {
   def send = {
      //some code here
      chain(action:"read")
   }

   def read = {
      // more working code
   }

}

因此,如果单击按钮test2,它将起作用并且呈现“读取” View ,但是如果单击按钮test1,则会得到:
HTTP Status 404 - /messaging/send
type Status report
message /messaging/send
description The requested resource is not available.

为什么actionSubmit无法正常工作?

我的怀疑与自动生成的name="_action_test1"有关,因为如果我删除了下划线(即使用Firebug),它将起作用。

但是根据Grails文档,标签用法是可以的:

http://grails.github.io/grails-doc/2.3.7/ref/Tags/actionSubmit.html

最佳答案

我相信您在actionSubmit中缺少 Action 字段:
<!--label derived from message bundle--> <g:actionSubmit value="${message(code:'label.update')}" action="Update" /> <g:actionSubmit value="test1" action="test1"/>
最近在一个直接从生成的grails代码中删除的插件中使用了它:https://github.com/vahidhedayati/jssh/blob/master/grails-app/views/jsshadmin/_edit.gsp对我来说很好

关于java - Grails标记actionSubmit导致404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628713/

相关文章:

java - Wicket - 持久化和非持久化 JPA 实体的序列化

java - 泛型如何允许在编译时对类型转换错误进行强类型检查

ajax - symfony2 - 如何创建没有值的 "entity"类型的表单字段

php - 将值发布到表单字段?

unit-testing - 具有派生属性的域类的Grails3单元测试

grails - Groovy确定字节数组编码

linux - 在 linux 中安装 grails

java - 检查一个元素是否被删除java

java - Xerces Sax2解析器编码问题

javascript - 在 Chrome 中,聚焦 HTML 文本输入字段可选择内容。如何取消选择?