jsf中的电子邮件唯一性验证
Email uniquness validate in jsf
这是我的 JSF
表单电子邮件代码部分:
(Registration.xhtml
)
<p:inputText id="email" required="true" label="Email" size="20" value="#{registrationBean.email}">
<f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)"/>
<f:validator id="uniqueEmailValidator"/>
</p:inputText>
<h:message for="email"/>
这是我的验证器 class:
@FacesValidator("uniqueEmailValidator")
public class UniqueEmailValidator implements Validator {
@Override
public void validate(FacesContext fc, UIComponent uic, Object value) throws ValidatorException {
if (value == null) {
return;
}
String email = (String) value;
CustomerService cService = new CustomerService();
if (!cService.exists(email)) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "mail is already in use.", "error"));
}
}
}
我在 运行 应用程序时遇到此错误:
/Registration.xhtml @49,73 <f:validator> A validator id was not specified. Typically the validator id is set in the constructor ValidateHandler(ValidatorConfig)
在您的 f:validator 标签中,将 "id" 更改为 "validatorId"
<f:validator validatorId="uniqueEmailValidator"/>
这是我的 JSF
表单电子邮件代码部分:
(Registration.xhtml
)
<p:inputText id="email" required="true" label="Email" size="20" value="#{registrationBean.email}">
<f:validateRegex pattern="([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)"/>
<f:validator id="uniqueEmailValidator"/>
</p:inputText>
<h:message for="email"/>
这是我的验证器 class:
@FacesValidator("uniqueEmailValidator")
public class UniqueEmailValidator implements Validator {
@Override
public void validate(FacesContext fc, UIComponent uic, Object value) throws ValidatorException {
if (value == null) {
return;
}
String email = (String) value;
CustomerService cService = new CustomerService();
if (!cService.exists(email)) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "mail is already in use.", "error"));
}
}
}
我在 运行 应用程序时遇到此错误:
/Registration.xhtml @49,73 <f:validator> A validator id was not specified. Typically the validator id is set in the constructor ValidateHandler(ValidatorConfig)
在您的 f:validator 标签中,将 "id" 更改为 "validatorId"
<f:validator validatorId="uniqueEmailValidator"/>