我有一个带有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,将两个值减少为一个。
有解决方法吗?这是一个错误还是预期的行为?
答案 0 :(得分:0)
status=CREATED&status=ACTIVATED
状态如何等于两个不同的值?如何将您的网址更改为
status=["CREATED", "ACTIVATED"]
我不清楚弹簧是如何开箱即用的转换