spring web支持可选的多值参数

时间:2017-02-14 09:36:11

标签: java spring spring-web

我有一个带有REST端点的spring web 4.3.4应用程序:

@RequestMapping(value = "/doStuff", method = RequestMethod.GET)
public ResponseEntity<MyDTO[]> findSomething(@RequestParam(value = "status") 
    Optional<Set<EnumStatus>> statusFilter) 
{
     [...];
}

我称之为: http://localhost:8080/rest/api/doStuff?status=CREATED&status=ACTIVATED

我希望statusFilter的值为:

Optional { Set {EnumStatus.CREATED, EnumStatus.ACTIVATED}}

相反,我得到了:

Optional { Set {EnumStatus.CREATED}}

原来Spring正在使用ArrayToObjectConverter,将两个值减少为一个。

有解决方法吗?这是一个错误还是预期的行为?

1 个答案:

答案 0 :(得分:0)

status=CREATED&status=ACTIVATED

状态如何等于两个不同的值?如何将您的网址更改为

status=["CREATED", "ACTIVATED"]

我不清楚弹簧是如何开箱即用的转换