问题: 我能够执行我的Controller(ReviewMetricsController)的默认操作(listLatest)。但是,我无法使用表单提交显式调用其他操作(索引)。 我正在使用Grails 2.0.4并在Eclipse IDE中使用Grails插件在开发模式下运行我的应用程序。
详情: 我的gsp中有一个表单,如下所示
<g:form name="queryForm"
url="[controller:'reviewMetrics', action:'index']">
<g:actionSubmit value="submit" />
</g:form>
当我提交上述表格时,我收到404错误
The requested resource (/reviewmetricsapp/reviewMetrics/index) is not available
我的控制器(reviewMetricsController.groovy
)如下所示
package reviewmetricsapp
class ReviewMetricsController {
static scope = "session"
static defaultAction = "listLatest"
def gatherMetricsService
def grailsApplication
def latestMetrics
def index() {
render(view:"dashboard", model: [model: latestMetrics])
}
def listLatest(){
println grailsApplication.config.metricsapp.perlScript.loc
latestMetrics = gatherMetricsService.getLastWeekMetrics()
println "printing ${latestMetrics}"
render(view:"showMetrics", model: [metrics: latestMetrics])
}
}
我的urlMappings.groovy
看起来如下所示
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{ constraints {
// apply constraints here
} }
"/reviewMetrics/index"{
controller="reviewMetrics"
action="index"
}
"/"(view:"/index")
"500"(view:'/error')
}
}
感谢任何帮助
答案 0 :(得分:1)
您无需为用例更改URLMappings
- 文件。 (删除reviewMetrics / index的特殊情况处理 - 从第一条规则处理)
请使用以下表单定义:
<g:form name="queryForm"
controller="reviewMetrics"
action="index">
[..]
</g:form>
请仔细检查您的操作是否被访问 - 只需放置一个普通的index.gsp
并且不在乎控制器内部。我猜这个错误在别的地方。