我是Grails的新手,我想尝试一个非常简单的例子.我应该提交一份表格并在屏幕上显示"Hello World".它由以下控制器组成:
package surface
class SearchController {
def index() {
render(view: "search")
}
def result() {
render "Hello World"
}
}
Run Code Online (Sandbox Code Playgroud)
和一个视图,形式:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<g:form name="searchform" url="result">
<g:textArea cols="80" rows="30" name="searchfield"/>
<g:actionSubmit value="Ask"/>
</g:form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我点击"询问"时,我收到404错误,但浏览器正确访问"/ surface/search/result".当我直接输入该地址而不使用表格时,"Hello World"正确显示.这可能是一个明智的选择,但我似乎无法找出为什么这不起作用的文档.
小智 5
补充@Tom Metz 的回答,您需要在 Grails 控制器结构中记住的是,每个公共方法都被视为一个action。此操作映射到一个 url。在您的示例中将存在/search/index
和/search/result
(控制器 + 操作)。
的文档g.form
是正确的,因为这说明了;
url (可选) - 包含动作、控制器、id 等的映射。
因此,要更正您的视图,您可以将操作设置为注释,或者您可以调整使用 url 的方式:
<g:form name="myForm" url="[action:'result',controller:'search']">
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2564 次 |
最近记录: |