我有一个Interface方法,可以这样称为-

{{url}}/packageName/{{var}}/list


它可以接受类型为Collection<String>的参数,因此我可以获取特定的结果。

{{url}}/packageName/{{var}}/list?paramIds=param1&paramIds=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);
}

07-28 00:40