@PathVariable 和 @RequestParam的使用

举例:

下面有两个不同的地址:

地址① 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";
	}

开发中使用到该技术只要记住记忆窍门,哪一个窍门呢? 看入参里有没有这个‘?’ 

若获取的入参的 参数 是下面这种形式 格式里面带‘?’ 就使用 @requestParam 去获取 参数‘2’

/emps?pageNo=2

若获取的入参的 参数 是下面这种形式 格式里面没有‘?’ 就使用 @PathVariable 去获取参数 ‘7’

/emp/7

从汉语意思上记忆:

RequestParam  汉语意思就是: 请求参数 顾名思义 就是获取参数的 

PathVariable 汉语意思是:路径变量,顾名思义,就是要获取一个url 地址中的一部分值,那一部分呢? RequestMapping 上说明了@RequestMapping(value="/emp/{id}"),我就是想获取你URL地址 /emp/ 的后面的那个 {id}的。所以使用@PathVariable注解在@RequestMapping映射路径上要写入获取的那个值!

猜你喜欢

转载自blog.csdn.net/MyBloggerlxs/article/details/81583515