1、前端post的form data或 get的query string parameters 都可以用@RequestParam
如:
Request URL: http://forcebot.jd.com/api/users/items?query=aa&page=1&pageSize=10
query string parameters
query: aa
page: 1
pageSize: 10
Request URL: http://forcebot.jd.com/user/getAllUserList.shtml
Request Method: POST
form data
query: aa
page: 1
rows: 10
@RequestMapping(value = "/items", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
@ApiOperation("查询用户列表")
public String getAllUserList(User user,
@RequestParam(required = false) String query,
@PageableDefault(page = 0, size = 10) Pageable pageable,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "20") Integer pageSize) {
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
resultMap.put("page", page);
resultMap.put("pageSize", pageSize);
pageable = new PageRequest(page - 1, pageSize, new Sort(Sort.Direction.DESC, "updateTime"));
Page<User> users = this.userService.getAllUsers(user, query, pageable);
resultMap.put("content", users.getContent());
resultMap.put("total", users.getTotalElements());
} catch (Exception e) {
return errorJson("服务繁忙");
}
return successJson("", resultMap);
}
2、@RequestParam与HttpServletRequest的区别
@RequestParam的参数必须传,可以不传值,但HttpServletRequest中的参数可以不传
如:Request URL: http://forcebot.jd.com/api/testcase/items?testCaseName=&createUserName=sunxuejian
public String getItems(HttpServletRequest request) {
Map<String, Object> resultMap = new HashMap<>();
int page = 1;
int pageSize =10;
String configName = request.getParameter("configName");
String createUser = request.getParameter("createUser");
String pageStr = request.getParameter("page");
String pageSizeStr = request.getParameter("pageSize");
}