私は次の豆を持っています:
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 リストには少なくとも 1 つの要素が必要です。
私のコントローラーでは、次のようにリストのサイズを検証します。
@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」要素を含む空でないリストを返します。このため、検証は失敗します。
「null」要素でいっぱいのリストではなく、空のリストを返すように spring-mvc に指示するにはどうすればよいですか? または、少なくとも制約を検証できる方法はありますか?