Grails操作适用于GET请求,返回404以获取POST请求

Jon*_*ram 1 grails groovy

我正在学习使用Grails,并且在处理应该是简单的表单提交时遇到了我不理解的情况.

我创建了一个名为'add'的控制器(有一个AddController.groovy源文件和一个相应的add/index.gsp视图),并定义了一个非常稀疏的'进程'动作,该动作当前呈现少量HTML以验证正在呼吁行动.

添加控制器上的进程操作的URL(毫不奇怪)是http:// localhost:8080/frontend/add/process /.

我想向流程操作提交一个非常简单的表单,作为与某些现有Java库集成的第一步.

http:// localhost:8080/frontend/add/process /发送GET请求会导致调用流程操作,浏览器将显示相关的简单HTML内容.

http:// localhost:8080/frontend/add/process /发送POST请求会返回HTTP 404错误.

我很欣赏我遗漏了一些对我的应用程序的基本补充,以便上述操作适用于GET和POST请求.我默认假设请求类型无关紧要.

如果我可以向相应的操作发送POST请求并且为了证明事情正在发挥作用而进行了一些标记,那么在这个阶段我会非常高兴.

我错过了什么基本要素的谜题?

控制器/前端/ AddController.groovy:

package frontend

class AddController {

    def index = { }

    def process = {
        render "<h1>process action being performed</h1>"
    }
}
Run Code Online (Sandbox Code Playgroud)

查看/添加/ index.gsp中

<html>
    <head>
        <title>Test View for index action</title>
        <meta name="layout" content="main" />
    </head>
    <body>
    <g:form controller="add" action="process">
        <label for="title">Title:</label>
        <g:textField name="title" id="title" />
        <label for="content">Content:</label>
        <g:textArea name="content" id="content" />
        <g:actionSubmit value="Add" />
    </g:form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jon*_*ram 15

<g:actionSubmit />指令需要一个action属性来指示要处理的操作.我认为表单行动已经足够了.

我需要改变:

<g:actionSubmit value="Add" />
Run Code Online (Sandbox Code Playgroud)

至:

<g:actionSubmit value="Add" action="process" />
Run Code Online (Sandbox Code Playgroud)