我有一个控制器来排序用户
@GetMapping(value = "/users", produces = MediaType.APPLICATION_JSON_VALUE)
public HttpEntity<List<User>> getUsers(
@RequestParam(required = false) String q,
@RequestParam(required = false, defaultValue = "1") int page,
@RequestParam(required = false, defaultValue = "1") int pageSize,
@RequestParam(required = false, defaultValue = "id") String sort
) {
return Optional
.ofNullable(q)
.map(v -> ResponseEntity.ok().body(userService.findByUsernameContaining(q, page - 1, pageSize, new Sort(Sort.Direction.ASC, sort))))
.orElseGet(() ->
ResponseEntity.ok().body(userService.findAll(page - 1, pageSize, new Sort(Sort.Direction.ASC, sort)))
);
}
可以作为参数4值。它看起来不太美观,我想知道它是如何在视觉上得到改善的。
我想知道用这四个变量创建一个类,然后创建一个注册了@ModelAttribute的方法。但是,我很快放弃了,因为我无法根据需要设置'defaultValue'。
我提出的方法是保留参数'id'和其他三个以使'Pegeable'对象附加'@ PageableDefault',其值设置为'size = 1,page = 1,sort =“id”。但是,这种方法也不会通过,因为在将页码传递给站点时,我必须从“页面”的值中减去1,在这种情况下,这是不可能的。
你有什么想法吗?
答案 0 :(得分:0)
我个人认为你所描述的许多@RequestParam
没有问题。
考虑优势:
现在的劣势:
对我来说,优点胜过劣势。除非我遗漏了什么。