0

問題: コントローラー (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')
    }
}

どんな助けでも大歓迎です

4

1 に答える 1

1
  1. URLMappingsユースケースの -fileを変更する必要はありません。(reviewMetrics/index の特別なケースの処理を削除します - 最初のルールから処理されます)

  2. 次のフォーム定義を使用してください。

    <g:form name="queryForm"
       controller="reviewMetrics"
       action="index">
       [..]
    </g:form>
    
  3. あなたのアクションがアクセスされていないことを再確認してください - 単純にindex.gspコントローラー内にプレーンを入れて気にしないでください。エラーは別の場所にあると思います。

于 2012-07-03T12:50:54.243 に答える