0

我有以下元素:

<p:selectOneListbox id="requirementsUrl"                                
                    value="#{data.selectedURL}">
                    <f:selectItems value="#{data.requirementsDocuments}" />                                     
                    <f:validator validatorId="conf.ListValidator" />
</p:selectOneListbox> 

在我的验证器中,我如何检查列表 requirementsDocuments 的大小是否大于 0。数据实际上是由我正在使用的框架生成的特定类,我无法通过纯 java 代码直接访问它

4

1 回答 1

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!");
        }
    }
于 2017-03-16T07:16:53.897 回答