Grails操作适用于GET请求,返回404 POST请求
问题描述:
我正在学习如何使用Grails,遇到了我不明白何时应该提交简单表单提交的情况。Grails操作适用于GET请求,返回404 POST请求
我创建了一个名为'add'的控制器(有一个AddController.groovy源文件和一个合适的add/index.gsp视图),并定义了一个非常稀疏的'process'动作,它目前呈现少量的HTML以验证该操作正在被调用。 (不出意外)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>"
}
}
视图/添加/ 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>
答
的<g:actionSubmit />
指令需要一个action
属性以指示动作来处理。我曾假定表单行动已经足够。
我需要改变:
<g:actionSubmit value="Add" />
到:
<g:actionSubmit value="Add" action="process" />
保存一天......最后得到了这个答案花两小时后。 – codesnooker 2014-04-30 10:03:50