如何以编程方式显示primefaces图标错误?

时间:2013-07-05 10:21:56

标签: primefaces

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

    <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, "", ""));

但错误图标无法呈现,请告知如何解决此问题。

1 个答案:

答案 0 :(得分: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, "", ""));
    }
}