रखने के लिए Grails UrlMapping रीडायरेक्ट मैं Grails 2.1.1
के साथ काम कर रहा हूं और कंट्रोलर क्रियाओं को मैप करने वाले कुछ अनुकूलित यूआरएल जोड़ना चाहता हूं।डीआरवाई
मैं ऐसा कर सकता हूं, लेकिन मूल मानचित्रण अभी भी काम करता है।
उदाहरण के लिए, मैं एक मानचित्रण add-property-to-directory
मेरी 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/create
से /mysite/add-property-to-directory
से 301 रीडायरेक्ट करना चाहता हूं।
मुझे 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)
}
}
अब तक यह संभव नहीं है। Url मैपिंग में रीडायरेक्ट निर्दिष्ट करना संभव बनाने के लिए एक सुविधा अनुरोध है - http://jira.grails.org/browse/GRAILS-5994 –
@ सुधीर धन्यवाद, जो मेरे प्रश्न का उत्तर देता है। क्या आप अपनी टिप्पणी को उत्तर में कॉपी कर सकते हैं ताकि मैं इसे स्वीकार कर सकूं? –
@ सुधीर, आपकी टिप्पणी और उपयोगी लिंक के लिए धन्यवाद ... टॉम ने अपना जवाब संपादित किया और यह मुझे जो कुछ ढूंढ रहा था उसे करने के लिए सही रास्ते पर ले गया, इसलिए मैंने उसका जवाब स्वीकार कर लिया। –