p:selectOneMenu

时间:2017-03-15 13:14:24

标签: jsf primefaces customvalidator selectonelistbox

我有以下元素:

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

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

1 个答案:

答案 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!");
        }
    }