【发布时间】:2019-10-21 10:51:24
【问题描述】:
我想将我的所有查询参数收集到一个 pojo 中并执行额外的字段验证。
我已经读到我可以简单地创建一个对象,spring-boot 会自动在其上设置这些请求参数。
@GetMaping
public ResponseEntity<?> listEntities(@RequestParam(value = "page-number", defaultValue = "0") @Min(0) Integer pageNumber,
@RequestParam(value = "page-size", defaultValue = "100") @Min(1) Integer pageSize ... )
我正在考虑创建一个名为 RequestParamsDTO 的类,我将在其中让我的查询参数负责分页。
但是为了在RequestParamsDTO 上设置这些字段,我必须将请求参数的名称与字段名称相匹配。但它不是有效的变量名:page-size。
必须有一些解决方法,类似于@RequestParam 的 value 属性,可以在 DTO 中的我的字段上设置给定的请求参数。
请指教。
【问题讨论】:
-
不确定这是否可行。试试
@JsonProperty("page-size") -
为什么不在请求正文中将它们全部设置为json,然后使用POJO使用@RequestBody将其映射到控制器中
-
因为在GET请求上提交payload不是rest-y,所以查询参数
-
我试过
@JsonProperty,不行 -
我不敢相信它没有机制!