Grails 2.1.1コントローラー アクションにマップするカスタマイズされた URL をいくつか追加したいと考えています 。
それはできますが、元のマッピングは引き続き機能します。
たとえば、次のようadd-property-to-directoryに myでマッピングを作成しました。UrlMappings
class UrlMappings {
static mappings = {
"/add-property-to-directory"(controller: "property", action: "create")
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
これで、期待どおりにヒットでき、/mysite/add-property-to-directory実行されます。PropertyController.create
ただし、ヒット/mysite/property/createすることはできますが、同じPropertyController.createメソッドが実行されます。
/mysite/property/createDRY の精神で、 からへの 301 リダイレクトを行いたいと思います/mysite/add-property-to-directory。
でこれを行う方法が見つかりませんでしたUrlMappings.groovy。Grailsでこれを達成する方法を知っている人はいますか?
どうもありがとうございました!
アップデート
トムの答えに基づいて、私が実装したソリューションは次のとおりです。
UrlMappings.groovy
class UrlMappings {
static mappings = {
"/add-property-to-directory"(controller: "property", action: "create")
"/property/create" {
controller = "redirect"
destination = "/add-property-to-directory"
}
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
RedirectController.groovy
class RedirectController {
def index() {
redirect(url: params.destination, permanent: true)
}
}