最近在做开发的过程中,突然面临一个问题:把变量当作请求地址,因此用到了@PathVariable,故此将两者进行比较一下。了解更多,请前往个人博客:风尘博客 http://www.dustyblog.cn/216.html
- @RequestParam:是从请求地址中获取参数,获取的是问号后面的参数,例如:
http://localhost:8080/back/article/add?id=51 获取的是 id=5;
- 常用来处理简单类型的绑定,通过 Request.getParameter() 获取的 String 可直接转换为简单类型的情况( String--> 简单类型的转换操作由 ConversionService 配置的转换器来完成);因为使用 request.getParameter()方式获取参数,所以可以处理 get 方式中 queryString 的值,也可以处理 post 方式中 body data 的值;
- 用来处理 Content-Type: 为
application/x-www-form-urlencoded
编码的内容,提交方式 GET、POST; - 三) 该注解有两个属性: value、required; value 用来指定要传入值的 id 名称,required 用来指示参数是否必须绑定;
2. @PathVariable:从路径中获取变量,同时,可将该变量作为请求地址的一部分使用!例如:
http://blog.dustyblog.com/article/17
- @Controller
- @RequestMapping("/article")
- public class ArticleController {
- @RequestMapping("/{articleId}")
- public ModelAndView articleListView(@PathVariable int articleId){
- ModelAndView mv=new ModelAndView();
- ArticleEntity articleEntity=articleService.selectArticleById(articleId );
- ...
- }
- }
这时,articleId 既作为我的请求地址,又在调用服务端时作参数使用,这就是@PathVariable 的作用。
关于更多的注解区别,见http://www.dustyblog.cn/205.html