メソッドによって異なるコントローラーで処理したい URL があります。経由でこれを行う方法はありUrlMappings
ますか?
同じ URL に対して 2 つの異なるマッピングを使用しても機能しません (2 番目のマッピングが最初のマッピングを上書きします)...
メソッドによって異なるコントローラーで処理したい URL があります。経由でこれを行う方法はありUrlMappings
ますか?
同じ URL に対して 2 つの異なるマッピングを使用しても機能しません (2 番目のマッピングが最初のマッピングを上書きします)...
テストされていませんが、以下のマッピングを試すことができます:
"/myurl" {
if(params.method == "doThis"){
controller = "doThis"
action = "doThisAction"
} else if(params.method == "doThat"){
controller = "doThat"
action = "doThatAction"
}
}
仮定すると、
http://<appserver>/myurl?method=doThis
http://<appserver>/myurl?method=doThat
UPDATE
HTTPメソッドを参照する場合、以下のようにフィルターを使用できます(リクエストが利用可能な場合):
class RoutingFilters{
def filters = {
routingCheck(uri: '/myurl/**' ) {
before = {
if(request.method == 'GET'){
redirect(controller: 'doThis', action: 'doThis')
}
if(request.method == 'POST'){
redirect(controller: 'doThat', action: 'doThat')
}
//So on and so forth for PUT and DELET
return false
}
}
}
}
URL マッピングは次のようになります。
//defaulting to "doThis" or any other "valid" controller as dummy
"/myurl/$id?"(controller: 'doThis')