Я где-то читал, что начиная с JSF 2.0, процедуры валидатора требуются для правильной обработки условия, при котором значение параметра равно нулю. Поэтому я только что написал этот метод проверки, который выглядит следующим образом:
public void validateTandC(FacesContext context, UIComponent source, Object value) {
if (value == null || !(value instanceof Boolean)) {
FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Terms and Conditions Not Accepted", "Value Not Present");
throw new ValidatorException(fm);
}
if (((Boolean) value) != true) {
FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Terms and Condistions Not Accepted",
"You must check the box that confirms you accept the Terms and Condtions ");
throw new ValidatorException(fm);
}
}
Это довольно утомительная конструкция, учитывая, что этот метод упоминается ТОЛЬКО на соответствующей странице и ТОЛЬКО из одного h: selectBooleanCheckbox . Если это так, то почему первый оператор , если когда-либо преобразуется в истину? Произойдет ли NPE в реальной жизни, если у меня его не будет?