起初,我尝试仅使用'required'属性,但是由于似乎从未对其进行过检查,因此我添加了一个非常简单的验证器,用于检查'color'属性的长度...但是似乎没有任何作用。以相同的形式,我还有其他inputText必需的组件,这些组件在按下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%;" />
验证者:
@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);
}
}
}