除了夫妇inputText,我在页面上的一个必需组件是p:fileUpload。所以,当我点击提交,<p:message>
显示在有require=true
组件,但用户没有输入/选择如何验证p:fileUpload
我想要的红色方框Required
也出现旁边的上传组件。这是我尝试过的。
1。当我在p:fileUpload中设置required="true"
时,没有任何事情发生(不知道这是否是一个错误)。
2。我把validator
在p:fileUpload
,下面是我的验证来源
public void validateFileUpload(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
if(value == null){
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Error");
message.setDetail("Required");
throw new ValidatorException(message);
}
}
当我点击提交没有真正发生,即使是在我经历上传,validateFileUpload
没有得到所谓的一切(不知道这是一个错误)
3。当我点击提交时,如果其他所有东西都通过了,并且进入我的操作方法,我可以检查文件是否为空,然后返回一个FacesMessage并让p:growl选取它。但是,我不喜欢这种方式,因为它给用户一种多层验证的感觉。
有没有办法对p进行更好的验证:fileUpload?
不知道,但也许我的[最新问题]一个(http://stackoverflow.com/q/9415 059/620338)是相关的。 – 2012-03-08 15:54:17
@MattHandy:我以前见过你的问题。我尝试了'validator'属性和'f:validator',都没有发生。 – 2012-03-08 21:51:29
报告和修正问题:http://code.google.com/p/primefaces/issues/detail?id=3680 – 2012-03-27 03:33:24