【发布时间】:2019-01-21 06:12:11
【问题描述】:
我有这样的要求:
example.com/search?sort=myfield1,-myfield2,myfield3
我想拆分这些参数以在我的控制器中绑定List<String> 排序或List<SortParam> 其中SortParam 是具有以下字段的类:name(字符串)和ask(布尔值)。
所以最终的控制器应该是这样的:
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ResponseEntity<MyResponse> search(@RequestParam List<String> sort) {
//...
}
或
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ResponseEntity<MyResponse> search(@RequestParam List<SortParam> sort) {
//...
}
有什么办法吗?
更新:
传递参数的标准方式不符合我的要求。 IE。我不能使用sort=myfield1&sort=-myfield2&sort=myfield3。我必须使用逗号分隔的名称。
另外,我明白我可以在我的控制器中接受@RequestParam String sort,然后像sort.split(",") 那样在控制器内拆分字符串,但这也不能解决上述问题。
【问题讨论】:
-
正确的标准方法是使用
/search?sort=myfield1&sort=-myfield2&sort=myfield3。但是用逗号分割也不是什么难事。 -
是的,用逗号分割并不难。 IE。只是
str.split(","),但我想知道是否可以在这些参数到达控制器(而不是控制器)之前拆分它们。 -
我想在我的控制器中使用
List<String> sort,但是传递参数的标准方式不能满足我的要求。我必须使用逗号分隔的名称。
标签: java spring spring-mvc spring-restcontroller spring-rest