2015-03-02 3 views
3

У меня есть настройки Validator боба в Java, где я могу сделать следующее:Validation в XPages с Java

public void validateStatus(FacesContext facesContext, UIComponent component, Object value) { 
    if (value.toString().equals("Fail")) { 
     FacesMessage message = new FacesMessage("Invalid value!"); 
     throw new ValidatorException(message); 
    } 
} 

И в XPage:

<xp:comboBox 
    id="Status" 
    validator="#{validatorsBean.validateStatus}"> 
</xp:comboBox> 
<xp:message 
    id="message2" 
    for="Status"> 
</xp:message> 

Это работает замечательно. Однако я также хочу сделать некоторую логику проверки и отобразить сообщение об ошибке в элементе управления <xp:messages>, который не связан с конкретным полем. Есть ли способ, которым я могу выполнить это в моем компоненте Validator? Спасибо за любые советы.

ответ

3

Заменить строку

throw new ValidatorException(message); 

с

((UIInput)component).setValid(false); 
facesContext.addMessage(component.getClientId(facesContext), message); 
+0

Какой параметр я передать для компонента? Я хочу показать сообщение об ошибке, которое не связано с определенным полем. –

+2

Используйте скрытое поле ввода и добавьте к нему валидатор. –