java – 在Spring 3.0 GET请求中,@PathVariable和@RequestParam有什么区别?

在下面的例子中,@PathVariable和@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

转载注明原文:java – 在Spring 3.0 GET请求中,@PathVariable和@RequestParam有什么区别? - 代码日志