在Spring 3.0 GET请求中,@ PathVariable和@RequestParam有什么区别
问题内容:
在下面的示例中,a @PathVariable
和a有@RequestParam
什么区别?
@RequestMapping(value = "/portfolio/{portfolioIdPath}", method = RequestMethod.GET)
public final String portfolio(HttpServletRequest request, ModelMap model,
@PathVariable long portfolioIdPath, @RequestParam long portfolioIdRequest)
问题答案:
@RequestParam 将请求参数绑定到方法中的参数。在您的示例中,GET请求中名为“ portfolioIdRequest”的参数的值将作为“
portfolioIdRequest”参数传递给您的方法。一个更具体的示例-如果请求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 同样将URI模板变量“ portfolioIdPath”的值绑定到方法参数“
portfolioIdPath”。例如,如果您的URI是
/portfolio/123
那么“ portfolioIdPath”方法参数的值将为“ 123”。
此处提供更多信息 :http :
//static.springsource.org/spring/docs/3.0.x/spring-framework-
reference/html/mvc.html#mvc-ann-requestmapping-uri-
templates