将列表传递给验证器,转换错误设置值'[]'为'null转换器

时间:2014-07-14 08:54:39

标签: validation jsf jsf-2 primefaces

我是JSF的新手,我的问题是验证者的问题。我有一个FileUploader(primefaces)和一个Form。单击“提交”按钮时,方法应检查表单内的DataTable,并且验证器应检查是否已通过FileUploader上载任何文件。因此,我放了一个调用验证器的隐藏按钮。 在我的Bean中,我有以下getter和setter:

  public List<Attachment> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<Attachment> attachmentList) {
        this.attachmentList= attachmentList;
    }

然后在我的验证器中我有以下代码:

@FacesValidator("uploadValidator")
public class uploadValidator implements Validator {

    public uploadValidator()  {
        // TODO Auto-generated constructor stub

    }
        @Override
    public void validate(FacesContext context, UIComponent component,
            Object value) throws ValidatorException {

            FacesMessage msg = 
                new FacesMessage(" this is the uploader message.", 
                        "this is the uploader message.");
            msg.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(msg);
        }

当我从我的XHTML文件(<f:validator validatorId="uploadValidator" />)调用验证器时,在Primefaces growl消息中,我收到错误: 转换错误设置值&#39; []&#39; for&#39; null Converter

这是XHTML代码:

        <h:inputHidden id="hidenB" value="#{myBean.attachmentList}">
                        <f:validator validatorId="uploadValidator" />
                    </h:inputHidden>

我知道问题是当我将值传递给&#34;对象值&#34;但我不知道如何解决它。 在Validator中,我只需要知道attachmentList是否为空,而在myBean中我使用attachmentList做其他事情,我如何只向Validator发送一个布尔值?我可以有另一个发送布尔值的getter和setter吗?如果是,那么我不需要转换器 提前感谢您的帮助。

0 个答案:

没有答案