【发布时间】:2012-01-26 14:29:03
【问题描述】:
如果根据数据库可用,我如何验证输入文本字段中输入的用户名?我正在使用 JSF2。
【问题讨论】:
-
什么是“检查可用性功能”?
-
嗨,我想用数据库交叉验证文本框中给定的用户名,无论用户名是否分配给任何人。
标签: ajax validation jsf
如果根据数据库可用,我如何验证输入文本字段中输入的用户名?我正在使用 JSF2。
【问题讨论】:
标签: ajax validation jsf
只需自己实现一个Validator。
@ManagedBean
@RequestScoped
public class UserNameAvailableValidator implements Validator {
@EJB
private UserService userService;
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
String userName = (String) value;
if (!userService.isUsernameAvailable(userName)) {
throw new ValidatorException(new FacesMessage("Username not avaliable"));
}
}
}
(请注意,它是 @ManagedBean 而不是 @FacesValidator,因为需要注入 @EJB;如果您不使用 EJB,则可以将其改为 @FacesValidator)
如下使用:
<h:inputText id="username" value="#{register.user.name}" required="true">
<f:validator binding="#{userNameAvailableValidator}" />
<f:ajax event="blur" render="username_message" />
</h:inputText>
<h:message id="username_message" for="username" />
【讨论】: