0

我有输入字段和消息图标组件如下:

    <h:form id="myForm" >
     <p:inputText id="email"  />  
     <p:message id="iconMessage" for="email" display="icon" />

我有一个提交按钮,可以在服务器端检查数据库中是否存在电子邮件,如果存在,我想让错误图标显示如下:

FacesContext.getCurrentInstance().addMessage("myForm:email",
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "", ""));

但错误图标不会呈现,请告知如何解决。

4

1 回答 1

0

您必须更新组件:

RequestContext.getCurrentInstance().update("myForm:email");

org.primefaces.context.RequestContext;

但我建议改为指定一个验证器:

<p:inputText id="email" validator="{yourBean.validateEmail}" />

并在您的托管 bean 中:

public void validateEmail(FacesContext context, UIComponent component, Object value) {
    String email = value.toString();

    //check if email exists in DB

    FacesContext.getCurrentInstance().addMessage(component.getClientId(context),
                new FacesMessage(FacesMessage.SEVERITY_ERROR, "", ""));
    }
}
于 2013-07-05T12:33:56.683 回答