問題: コントローラー (ReviewMetricsController) のデフォルト アクション (listLatest) を実行できます。しかし、フォーム送信で他のアクション(インデックス)を明示的に呼び出すことはできません。私は Grails 2.0.4 を使用しており、Grails プラグインがインストールされた Eclipse IDE から開発モードでアプリケーションを実行しています。
詳細: 以下に示すように、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')
}
}
どんな助けでも大歓迎です