我有以下豆类:
public class CodedEntity {
private String name;
private String code;
// getters and setters
}
public class MyProduct {
@javax.validation.constraints.Size(min = 1)
private List<CodedEntity> codedEntities;
// getters and setters
}
如您所见,codedEntities 列表必须至少包含一个元素。
在我的控制器中,我像这样验证列表的大小:
@RequestMapping(value = "/**", method = RequestMethod.POST)
public String submit(@Valid final MyProduct myProduct, final BindingResult result,
final Model model) {
// ...
}
最后是我的jsp:
<c:forEach items="${codedEntitiesList}" var="codedEntity" varStatus="loopStatus"
<form:checkbox path="myProduct.codedEntities[${loopStatus.index}]" value="${codedEntity.code}" cssClass="checkbox" />
</c:forEach>
这里的问题如下:当我在不选中任何复选框的情况下提交 jsp 时,spring mvc 返回一个包含“null”元素的非空列表。因此,验证失败。
如何告诉 spring-mvc 返回一个空列表而不是一个充满“null”元素的列表?或者至少有什么方法可以验证我的约束?