स्प्रिंग एमवीसी नियंत्रक क्रियाओं से बाहरी यूआरएल पर रीडायरेक्ट करना
स्प्रिंग एमवीसी में, रीडायरेक्ट का उपयोग करके प्रोजेक्ट के भीतर यूआरएल पर रीडायरेक्ट करना सीधा है: उपसर्ग . हालाँकि, बाहरी यूआरएल पर रीडायरेक्ट करना मुश्किल हो सकता है, खासकर यदि यूआरएल एक वैध प्रोटोकॉल निर्दिष्ट नहीं करता है।
निम्न कोड पर विचार करें, जो प्रोजेक्ट के भीतर एक यूआरएल पर रीडायरेक्ट करता है:
@RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "yahoo.com"; return "redirect:" redirectUrl; }
यह कोड इच्छित बाहरी यूआरएल पर रीडायरेक्ट नहीं करेगा, बल्कि दिए गए नाम के साथ एक दृश्य पर रीडायरेक्ट करेगा। बाहरी यूआरएल पर रीडायरेक्ट करने के लिए, यूआरएल में प्रोटोकॉल शामिल करना होगा, जैसा कि नीचे देखा गया है:
@RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "http://www.yahoo.com"; return "redirect:" redirectUrl; }
हालाँकि, इस विधि के लिए एक वैध प्रोटोकॉल की उपस्थिति की आवश्यकता होती है। वैध प्रोटोकॉल के बिना यूआरएल को संभालने के लिए, दो दृष्टिकोण उपलब्ध हैं:
दृष्टिकोण 1:
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public void method(HttpServletResponse httpServletResponse) { httpServletResponse.setHeader("Location", projectUrl); httpServletResponse.setStatus(302); }
इस दृष्टिकोण में, एक HttpServletResponse ऑब्जेक्ट का उपयोग स्थान हेडर और स्टेटस कोड को सेट करने के लिए किया जाता है, जो रीडायरेक्ट को मजबूर करता है।
दृष्टिकोण 2:
@RequestMapping(value = "/redirect", method = RequestMethod.GET) public ModelAndView method() { return new ModelAndView("redirect:" projectUrl); }
यह दृष्टिकोण दिए गए यूआरएल पर रीडायरेक्ट करने के लिए एक मॉडलएंडव्यू का उपयोग करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3