我有输入字段和消息图标组件,如下所示:
<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, "", ""));
但错误图标无法呈现,请告知如何解决此问题。
答案 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, "", ""));
}
}