我是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吗?如果是,那么我不需要转换器 提前感谢您的帮助。