我有以下元素:
<p:selectOneListbox id="requirementsUrl"
value="#{data.selectedURL}">
<f:selectItems value="#{data.requirementsDocuments}" />
<f:validator validatorId="conf.ListValidator" />
</p:selectOneListbox>
在我的验证器中如何检查列表requirementsDocuments的大小是否大于0.数据实际上是由我正在使用的框架生成的特定类,我无法通过普通的Java代码直接访问它
答案 0 :(得分:0)
在验证器中,您可以通过FacesContext访问EL表达式“#{data.requirementsDocuments}”的值。
示例:
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
List requireDocuments = context.getApplication()
.evaluateExpressionGet(context, "#{data.requirementsDocuments}", List.class);
if(requireDocuments.size() == 0) {
throw new ValidatorException("List is empty!");
}
}