2012-11-18 11 views
65

इस अवधि मैं वसंत MVC का अध्ययन कर रहा हूँ में उदाहरण (एसटीएस Dasboard से डाउनलोड) प्रदर्शन और मैं Request Mapping उदाहरण के बारे में कुछ सरल सवाल है:स्प्रिंग एमवीसी मेरे नियंत्रक विधि में एक HTTP HTTP अनुरोध का पैरामीटर मान कैसे लेता है?

 <li> 
      <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a> 
     </li> 
:

1) मेरी home.jsp पेज में मैं इस लिंक है

जैसा कि आप इस लिंक से देख सकते हैं मैं एक HTTP GET अनुरोध कर रहा हूं जिसमें "foo" पैरामीटर है जिसमें "bar" है।

यह HTTP अनुरोध नियंत्रक वर्ग MappingController के लिए निम्न विधि द्वारा नियंत्रित किया जाता है:

@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo") 
public @ResponseBody String byParameter() { 
    return "Mapped by path + method + presence of query parameter! (MappingController)"; 
} 

इस विधि HTTP कि एक पैरामीटर "foo"

कैसे कर सकता है नाम दिया अनुरोध (केवल GET प्रकार) का प्रबंधन मैं इस पैरामीटर का मान ("बार") लेता हूं और इसे पैरामीटर विधि द्वारा मेरे कोड के अंदर एक चर में डाल देता हूं?

उत्तर

152

रूप the documentation में बताया गया है, एक @RequestParam एनोटेशन का उपयोग करके:

public @ResponseBody String byParameter(@RequestParam("foo") String foo) { 
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = " 
      + foo; 
} 
+3

आप स्पष्ट उत्तर के लिए और प्रलेखन – AndreaNobili

+2

के संदर्भ में मामले में के लिए बहुत बहुत धन्यवाद जब वहाँ 10 कर रहे हैं पैरामीटर की संख्या, क्या हमें यह करना है 10 बार या थार परिदृश्य के लिए एक बेहतर तरीका है – Count

+2

@ गणना: दस्तावेज़ को दिए गए लिंक पर क्लिक करें, फिर पैराग्राफ "समर्थित विधि तर्क प्रकार" के अनुच्छेद तक थोड़ा ऊपर स्क्रॉल करें, और "कमांड या फॉर्म ऑब्जेक्ट्स" के बारे में भाग पढ़ें –

33

तुम भी एक URI टेम्पलेट का उपयोग कर सकते हैं। यदि आपने अपने अनुरोध को एक सुस्त यूआरएल में संरचित किया है तो वसंत यूआरएल से प्रदत्त मूल्य को पार्स कर सकता है।

एचटीएमएल

<li> 
    <a id="byParameter" 
     class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and 
      presence of parameter</a> 
</li> 

नियंत्रक

@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET) 
public @ResponseBody String byParameter(@PathVariable String foo) { 
    //Perform logic with foo 
    return "Mapped by path + method + presence of query parameter! (MappingController)"; 
} 

Spring URI Template Documentation

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