2013-10-09 3 views
17

अगर मैं mycontroller विधि में लिखें:वसंत एमवीसी में रीडायरेक्ट के बाद नियंत्रक से पास पैरामीटर के तरीके क्या हैं?

return "redirect:url"; 

क्या मानकों होगा यूआरएल के पास रहता है (यह शायद controler विधि या jsp पेज)?

+0

मॉडल में सभी साधारण गुण। जैसा कि यहां बताया गया है http://docs.spring.io/spring/docs/3.2.4.RELEASE/spring-framework-reference/html/mvc.html#mvc-redirecting। –

उत्तर

35

RedirectAttributes के साथ, आप रीडायरेक्ट URL करने के लिए लगभग किसी भी डेटा पास कर सकते हैं:

@RequestMapping(value="/someURL", method=GET) 
public String yourMethod(RedirectAttributes redirectAttributes) 
{ 
    ... 
    redirectAttributes.addAttribute("rd", "rdValue"); 
    redirectAttributes.addFlashAttribute("fa", faValue); 
    return "redirect:/someOtherURL"; 
} 

आप addAttribute का उपयोग करते हैं विशेषताएं जोड़ने का तरीका, इस लक्ष्य रीडायरेक्ट URL में खत्म हो जाएगा। इन गुणों का उपयोग अनुरोध पैरामीटर बनाने के लिए किया जाता है और क्लाइंट (ब्राउज़र) इन पैरामीटर के साथ redirect URL पर एक नया अनुरोध भेजेगा। इसके साथ, आप स्ट्रिंग या प्राइमेटिव्स को अपने रीडायरेक्ट विशेषताओं के रूप में उपयोग करने के लिए सीमित हैं।

और जब आप addFlashAttribute का उपयोग करते हैं, तो ये गुण रीडायरेक्ट (आमतौर पर सत्र में) से पहले अस्थायी रूप से सहेजे जाते हैं और रीडायरेक्ट के बाद अनुरोध के लिए उपलब्ध होते हैं और तुरंत हटा दिए जाते हैं। flashAttributes का उपयोग करने का लाभ यह है कि, आप किसी ऑब्जेक्ट को फ़्लैश विशेषता के रूप में जोड़ सकते हैं (क्योंकि यह सत्र में संग्रहीत है)।

+0

अच्छा ... मैंने request.getParameterMap() के साथ RedirectAttributes का उपयोग किया। और यह सभी यूआरएल के साथ एक नए यूआरएल पर रीडायरेक्ट करने के लिए ठीक काम करता है। उदाहरण: मार्केटिंग पैरामीटर को पुन: पेश करना (utm_source) –

संबंधित मुद्दे