我有一个Interface方法,可以这样称为-
{{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-想知道是否有更好的方法来解决此问题。提前致谢。
最佳答案
在我看来,Spring可以为您提供最佳选择,空列表通常比null更好。
我的第一选择将是修改您的DAO代码以处理一个空列表,而不是期望null,但是假设这是不可能的,为什么不检查您的控制器是否将null传递给DAO(如果集合为空),例如:
if (paramsIds.isEmpty()) {
dao.doSomething(null);
}