我有一个可以调用的接口方法 -
{{url}}/packageName/{{var}}/list
它可以包含Collection<String>
类型的参数,因此我可以获取特定结果。
{{url}}/packageName/{{var}}/list?paramIds=param1¶mIds=param2
现在,如果我将paramIds保留为空,如下所示,Spring MVC会创建LinkedHashMap
,大小为0,我得不到任何结果。
{{url}}/packageName/{{var}}/list?paramIds=
这是我的注释@RequestParam(value = "paramIds", required = "false") Collection<String> paramIds
我试图摆脱required
并使用defaultValue
但无法将defaultValue
设置为null
。
现在我将注释更改为@RequestParam(value = "paramIds", defaultValue = "none")
并在dao中添加代码以将“none”处理为null - 想知道是否有更好的方法来解决此问题。
提前致谢。
答案 0 :(得分:0)
听起来像Spring给你最好的选择,空列表通常比null更好。
我的第一选择是修改你的DAO代码来处理一个空列表而不是期望null,但是假设这是不可能的,为什么不在你的控制器中检查如果集合为空则将null传递给你的DAO,比如:
if (paramsIds.isEmpty()) {
dao.doSomething(null);
}