Необходимо указать идентификатор клиента для обновляемого элемента в атрибуте update
.
<h:inputText id="input1" value="#{bean.input1}">
<p:ajax event="blur" update="input1Message" />
</h:inputText>
<h:panelGroup id="input1Message">
<h:outputText value="Invalid field!" rendered="#{bean.input1Error}" />
</h:panelGroup>
Но ... Вы в основном заново изобретаете проверку JSF и не пользуетесь встроенным API проверки JSF. Я настоятельно рекомендую просто реализовать Validator
.
@FacesValidator("input1Validator")
public class Input1Validator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
if (isInvalid(value)) {
throw new ValidatorException(new FacesMessage("Invalid field!"));
}
}
}
и используйте его следующим образом
<h:inputText id="input1" value="#{bean.input1}">
<p:ajax event="blur" update="input1Message" />
</h:inputText>
<h:message id="input1Message" for="input1" />
Это освобождает ваш управляемый компонент от проверки и беспорядка логических свойств.