您需要创建一个
Validator。
开球示例:
@FacesValidator("sessionIdValidator")public class SessionIdValidator implements Validator { @Override public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { // ... if (yourDataService.existSessionId(value)) { throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Session ID is already in use, please choose another.", null)); } }}如下使用它:
<h:inputText id="sessionid" value="#{DatabaseController.formMap['sessionid']}"> <f:validateLength minimum="0" maximum="15" /> <f:validator validatorId="sessionIdValidator" /> <f:ajax event="blur" render="sessionidMessage" /> </h:inputText><h:message id="sessionidMessage" for="sessionid" />请注意,您应该使用
<h:message>显示验证消息。您认为没有任何人。将其应用于所有其他字段:
<h:inputText id="userid" value="#{DatabaseController.formMap['userid']}"> <f:validateLength minimum="0" maximum="15" /> <f:ajax event="blur" render="useridMessage" /> </h:inputText><h:message id="useridMessage" for="userid" />如果你想使用
@Resource或
@EJB或
@Inject在验证,则更换
@FacesValidator的注解
@ManagedBean或(如你似乎使用CDI出于某种原因)
@Named:
@Namedpublic class SessionIdValidator implements Validator { @Resource private DataSource dataSource; @Inject private YourDataService yourDataService; // ...}并如下使用它
<f:validator binding="#{sessionIdValidator}" />


