起初我只尝试了'required'属性,但似乎从来没有被检查过,我添加了一个非常简单的验证器,检查'color'属性的长度......但似乎没有任何效果。在同一个表单中,我有其他的输入文本所需的组件,当我按下commandButton时,它们被正确地检查。
我有以下代码。
<p:colorPicker id="color" value="#{backBean.color}" required="true" requiredMessage="Required!" validator="ColorValidator" validatorMessage="Required!"/>
<p:commandButton id="createOrUpdateButton"
actionListener="{backBean.createOrUpdate}"
process="@form"
update="@all"
value="Save"
style="width: 95%;" />
Validator:
@FacesValidator("ColorValidator")
public class ColorValidator implements Validator{
public ColorValidator(){
}
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
if (value==null || value.toString().trim().isEmpty()) {
FacesMessage msg = new FacesMessage("Color validation failed.","Please select a color.");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
}
}
}