浅析 @PathVariable 和 @RequestParam(转发,非原创)

简介: 首先 上两个地址:地址①http://localhost:8989/SSSP/emps?pageNo=2地址②http://localhost:8989/SSSP/emp/7如果想获取地址①中的 pageNo的值 ‘2’ ,则使用 @RequestParam ,如果想获取地址②中的 emp/7 中...

首先 上两个地址:
地址①
http://localhost:8989/SSSP/emps?pageNo=2
地址②
http://localhost:8989/SSSP/emp/7
如果想获取地址①中的 pageNo的值 ‘2’ ,则使用 @RequestParam ,
如果想获取地址②中的 emp/7 中的 ‘7 ’ 则使用 @PathVariable

获取地址① 中的‘2’ 使用的 方法是如下

    @RequestMapping("/emps")
    public String list(@RequestParam(value="pageNo",required=false,
            defaultValue="1")String pageNoStr,Map<String, Object>map){
        
        int pageNo = 1;
        
        try {
            //对pageNo 的校验 
            pageNo = Integer.parseInt(pageNoStr);
            if(pageNo<1){
                pageNo = 1;
            }
        } catch (Exception e) {}
        
        Page<Employee> page = employeeService.getPage(pageNo, 5);
        map.put("page",page);
        
        return "emp/list";
    }

获取地址② 中的 ‘7’ 使用的方法是如下:

    @RequestMapping(value="/emp/{id}",method=RequestMethod.GET)
    public String edit(@PathVariable("id")Integer id,Map<String , Object>map){
        Employee employee = employeeService.getEmployee(id);
        List<Department> departments = departmentService.getAll();
        map.put("employee", employee);
        map.put("departments", departments);
        return "emp/input";
    }

大道理不讲 原理也不分析就记忆一点,那一点呢? 看‘这个符号‘?’
1. 若获取的入参的 参数 是下面这种形式 就使用 @requestParam 去获取 参数‘2’
/emps?pageNo=2
2. 若获取的入参的 参数 是下面这种形式 就使用 @PathVariable 去获取参数 ‘7’
/emp/7

RequestParam 汉语意思就是: 请求参数 顾名思义 就是获取参数的;
PathVariable 汉语意思是:路径变量,顾名思义,就是要获取一个url 地址中的一部分值,那一部分呢?

RequestMapping 上说明了@RequestMapping(value="/emp/{id}"),我就是想获取你URL地址 /emp/ 的后面的那个 {id}的。

so,就看‘?’ 若是想获取 ‘?’ 后面的pageNo 的值 ‘2’, 就使用RequestParam ,
若想获取的是url 地址的一部分 ‘7’ 就使用PathVariable ,
@PathVariable是用来获得请求url中的动态参数的。

转自:http://blog.csdn.net/chuck_kui/article/details/55506723

相关文章
|
2月前
|
JSON 数据格式
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
@SpringQueryMap 、@RequestPart 、@RequestParam 比较与说明
181 2
|
4月前
|
JSON Java 数据格式
@RequestParam与@RequestBody使用对比
@RequestParam与@RequestBody使用对比
73 8
@RequestParam()和@PathVariable()的区别
@RequestParam()和@PathVariable()的区别
|
XML JSON 数据格式
@RequestParam @RequestBody @PathVariable 等参数绑定
@RequestParam @RequestBody @PathVariable 等参数绑定
|
6月前
|
Java API Spring
spring注解中@RequestParam和@PathVariable的区别
spring注解中@RequestParam和@PathVariable的区别
140 0
|
6月前
|
存储 XML JSON
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
408 0
|
XML SQL JSON
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
169 0
|
XML JSON Java
详解@RequestParam和@RequestBody
你好看官,里面请!今天笔者讲的是@RequestParam和@RequestBody。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
471 3
详解@RequestParam和@RequestBody
|
Java API Spring
@RequestParam和@PathVariable的区别
@RequestParam注解获取URL中携带的请求参数的值既URL中“?”后携带的参数,传递参数的格式是:key=value;@PathVariable注解用于获取URL中路径的参数值,参数名由RequestMapping注解请求路径时指定,常用于restful风格的api中,传递参数格式:直接在url后添加需要传递的值即可
192 0
|
前端开发 Java API
@RequestParam怎么使用
@RequestParam怎么使用