स्प्रिंग MVC मेरे नियंत्रक विधि में GET HTTP अनुरोध का पैरामीटर मान कैसे लें?


87

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

1) मेरे home.jspपेज में मेरे पास यह लिंक है:

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

जैसा कि आप इस लिंक से देख सकते हैं कि मैं एक HTTP "Goo Request" कर रहा हूँ, जिसमें "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 अनुरोध (केवल GETप्रकार) का प्रबंधन करती है जिसमें "फू" नाम का एक पैरामीटर होता है।

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

जवाबों:


184

जैसा कि एनोटेशन का उपयोग करके प्रलेखन में समझाया गया है@RequestParam :

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

3
उत्तर स्पष्ट करने के लिए और प्रलेखन के संदर्भ के लिए आपका बहुत-बहुत धन्यवाद
AndreaNobili

3
मामले में जब मापदंडों की 10 संख्या होती है, तो क्या हमें ऐसा 10 बार करना है या थार परिदृश्य के लिए एक बेहतर तरीका है
गिनें

2
@Count: लिंक मैं प्रलेखन को दे दिया क्लिक करें, फिर ऊपर एक छोटे पैराग्राफ "समर्थित विधि तर्क प्रकारों" जब तक स्क्रॉल करें, और "कमांड या रूप वस्तुओं" के बारे में हिस्सा पढ़ा
जेबी Nizet

43

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

एचटीएमएल

<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)";
}

स्प्रिंग URI टेम्प्लेट प्रलेखन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.