0

コントローラーから次の関数が必要であり、これらのそれぞれは、一致する REST によってサポートされています。

  • 色を作成する
  • ID に基づいて特定の色を取得する
  • すべての色を取得する

次の URL スキームがあります。

    "/$controller/$action?/$id?"{
        constraints {
            // apply constraints here
        }
    }
    "/color"(controller: "color", parseRequest: true) {
       action = [GET: "list", POST: "save"]
    }
    "/color/$id" (resource: "color")

上記は、REST とブラウザー ベースの対話の両方でうまく機能しません。

http://localhost:8080/color/createshow代わりにアクションに行くことになります。create形を示す行動に出ることを期待しています。

最後のマッピングを削除すると正常に"/color/$id" (resource: "color")動作しますが、URL がhttp://localhost:8080/color/7壊れます

質問

これらすべての URL を一貫して機能させる正しい方法は何ですか?

4

1 に答える 1

2

プラスに制約を追加してurlMapping、デフォルトのマッピングが使用可能であることを確認します。

"/$controller/$action?/$id?"{
    constraints {
        // apply constraints here
    }
}

"/user/$id" (resource: "user"){
    constraints {
        id validator: {
            !(it in ['create', 'otherAction'])
        }
    }
}

偶然にも、同様の質問がここで回答されました。

于 2013-06-11T02:04:00.160 に答える