2010-11-01 11 views
13

के बीच क्या अंतर है, उदाहरण के लिए, @PathVariable और @RequestParam के बीच क्या अंतर है?स्प्रिंग 3.0 जीईटी अनुरोध में, @PathVariable और @RequestParam

@RequestMapping(value = "/portfolio/{portfolioIdPath}", method = RequestMethod.GET) 
public final String portfolio(HttpServletRequest request, ModelMap model, 
@PathVariable long portfolioIdPath, @RequestParam long portfolioIdRequest) 

उत्तर

17

@RequestParam अपने विधि में एक पैरामीटर के लिए एक अनुरोध पैरामीटर बांधता है। अपने उदाहरण में, GET अनुरोध में नाम "portfolioIdRequest" पैरामीटर का मान पारित हो जाएगा आपकी विधि के लिए "पोर्टफोलियो IdRequest" तर्क के रूप में। एक और अधिक ठोस उदाहरण - यदि अनुरोध URL

http://hostname/portfolio/123?portfolioIdRequest=456 

तो पैरामीटर "portfolioIdRequest" का मान है "456" हो जाएगा। यहाँ

और जानकारी: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestparam

@PathVariable इसी तरह यूआरआई टेम्पलेट चर "portfolioIdPath" विधि पैरामीटर "portfolioIdPath" के मूल्य बांधता है। उदाहरण के लिए, यदि आपका यूआरआई

/portfolio/123 

तब "पोर्टफोलियोआईडपाथ" विधि पैरामीटर का मान "123" होगा।

यहाँऔर जानकारी: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates

2

@RequestParam HTTP GET या POST पैरामीटर जो ग्राहक (उपयोगकर्ता) द्वारा भेजा जाता है की पहचान करता है, और @RequestMapping जो अनुरोध करने के लिए अनुरोध से भिन्न होता है यूआरएल का एक खंड के अर्क:

http://host/?var=1 

में यूआरएल के ऊपर "var" एक अनुरोध है।

http://host/registration/{which} 

और ऊपर यूआरएल {जो} एक अनुरोध मानचित्रण है। आप की तरह अपने सेवा कह सकते हैं:

http://host/registration/user 

या की तरह

http://host/registration/firm 

अपने आवेदन में आप का मूल्य उपयोग कर सकते हैं {जो} (पहला मामला है, जिसमें और "उपयोगकर्ता" = दूसरे में में जो =। "फर्म"

0

यह जिस तरह से आप अपने अनुरोध को पूरा करना चाहते हैं निर्भर करता है

@RequestParam example 
(request)http://something.com/owner?ownerId=1234 

@PathVariable example 
(request) http://something.com/owner/1234 
(in tour code) /owner/{ownerId} 
संबंधित मुद्दे