首先 上两个地址:
地址①
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

浅析 @PathVariable 和 @RequestParam(转发,非原创)的更多相关文章

  1. 转载:浅析@PathVariable 和 @RequestParam

    在网上看了一篇很好的文章,讲的很清楚明了,说到了点子上(转自:https://blog.csdn.net/chuck_kui/article/details/55506723): 首先 上两个地址: ...

  2. 浅析 @PathVariable 和 @RequestParam

    一.代码实例 首先,上两个地址: 地址1:http://localhost:8989/SSSP/emps?pageNo=2 地址2:http://localhost:8989/SSSP/emp/7 如 ...

  3. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager 转发非原创

    Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager   Redis缓存服务器是一款key/value数据库,读11 ...

  4. SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)

    上一篇SpringBoot实战(二)Restful风格API接口中写了一个控制器,获取了前端请求的参数,现在我们就参数的获取与校验做一个介绍: 一:获取参数 SpringBoot提供的获取参数注解包括 ...

  5. springmvc中@PathVariable和@RequestParam的区别

    顾名思义, @PathVariable和@RequestParam,分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数. 我的url; http://localhost:808 ...

  6. Linux下high CPU分析心得【非原创】

    非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高ga ...

  7. CSS样式命名整理(非原创)

    非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...

  8. springmvc请求路径和请求参数的获取注解- @PathVariable和@RequestParam

    @PathVariable和@RequestParam @PathVariable是从路径里面去获取变量,也就是把路径当做变量. @RequestParam是从请求里面获取参数. 如:url:http ...

  9. 非原创。使用ajax加载控件

    非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...

随机推荐

  1. 利用js给datalist或select动态添加option选项

    <!DOCTYPE html> <html> <head> <title>鼠标点击时加载</title> <script type=& ...

  2. Spring是如何校验XML的

    首先来看下xml的一些概念: xml的schema里有namespace,可以给它起个别名.比如常见的spring的namespace: xmlns:mvc="http://www.spri ...

  3. socket基础编程-2

    client端: import socket while True: client=socket.socket(socket.ANET,socket.SOCK_STREAM) client.conne ...

  4. php 将数组转换网址URL参数

    $array =array ( 'id' =123, 'name' = 'dopost' );echo http_build_query( $array );//得到结果id=123name=dopo ...

  5. mycat - 全局序列

    解决主键冲突问题:例如id自增的order表,如果分布式情况下不处理的话,当每个表的第一条数据id都是1. 怎么确保id唯一呢? 解决办法: 1.本地文件(不推荐) 2.数据库方式(推荐) 3.时间戳 ...

  6. iview render bug & vue namespace bug

    iview render bug https://codepen.io/xgqfrms/pen/gyGjKP https://codepen.io/xgqfrms/full/gyGjKP bug &l ...

  7. 【转】console.log 用法

    标签: 转自http://www.cnblogs.com/ctriphire/p/4116207.html 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是 ...

  8. springboot+jpa+mysql+redis+swagger整合步骤

    springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在电脑上先安装redis: 一.在pom.xml中引入redis 二.在application.yml里配置r ...

  9. SpringMvc父子容器

      使用监听器listener来加载spring的配置文件:如下 <context-param> <param-name>contextConfigLocation</p ...

  10. EChart.js 笔记二

    交互组件 Echart.js 中交互组件比较多.例如: legend(图例).title(标题组件).visualMap(视觉映射组件).dataZoom(数据缩放组件).timeline(时间线组件 ...