@RequestParam和@PathVariable的区别
@RequestParam | Request URL: http://api.leyou.com/api/item/brand/page?key=&page=1&rows=5&sortBy=id&desc=false |
---|---|
@PathVariable | Request URL: http://api.leyou.com/api/group/参数值 |
具体代码
@RequestParam
/**
* 根据查询条件分页查询品牌信息
* @param key
* @param page
* @param rows
* @param sortBy
* @param desc
* @return
*/
@GetMapping("page")
public ResponseEntity<PageResult<Brand>> queryBrandsByPage(@RequestParam(value = "key",required = false)String key, @RequestParam(value = "page",defaultValue = "1")Integer page, @RequestParam(value = "rows",defaultValue = "5")Integer rows, @RequestParam(value = "sortBy",required = false)String sortBy, @RequestParam(value = "desc",required = false)Boolean desc) {
PageResult<Brand> result = this.brandService.queryBrandsByPage(key, page, rows, sortBy, desc);
if (CollectionUtils.isEmpty(result.getItems())) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.ok(result);
}
@PathVariable
@GetMapping("group/{cid}")
public ResponseEntity<List<SpecGroup>> queryGroupByCid(@PathVariable("cid")Long cid){
return ResponseEntity.status(HttpStatus.OK).build();
}
@Param
- @Param主要应用Dao层
- Dao层接口方法中参数列表中的多个条件参数时,且对应xml中传入的参数不一致
- 使用@Param,xml中无需写parameterType
- 参数的顺序无关
代码示例
@Select("select * from role where name = #{name} and dept_id = (select dept_id from dept where uid = #{uid})")
UserVo queryUserAll(@Param("name")String name,@Parma("uid")Integer uid);