@pathVariable
获取url中的参数
字段名一样可以简写,但不能不写
比如 /user/{id}
/**
* 获取文章详情
* @param id
* @return
*/
@GetMapping("/{id}")
public ResponseResult articleDetail(@PathVariable("id") Long id){
return articleService.getArticleDetail(id);
}
@RequestParam
获取请求参数中的值
前端传递的字段 要和 后台与方法中的参数名 一致的话,会自动设置,可以省略
比如 url?id=123&name=xxx
/**
* 获取文章列表
* @return
*/
@GetMapping("/articleList")
public ResponseResult articleList(@RequestParam Long categoryId,@RequestParam Integer pageNum,@RequestParam Integer pageSize){
return articleService.getArticleList(categoryId,pageNum,pageSize);
}
@RequestBody
获取post请求中的请求体
只支持post请求
@PostMapping("/login")
public ResponseResult login(@RequestBody User user){
if(!StringUtils.hasText(user.getUserName())){
//提示 必须要传用户名
throw new SystemException(AppHttpCodeEnum.REQUIRE_USERNAME);
}
return blogLoginService.login(user);
}
@Param
用于mybatis中的mapper,映射xml中的参数
字段名一样可以不写
mapper中
User getOneUser(@Param("id") Integer id);
xml中
<select id="getOneUser" resultType="com.example.dao.User">
select * from tb_user where id=#{id};
</select>