【问题标题】:How to validate availability of username in database?如何验证数据库中用户名的可用性?
【发布时间】:2012-01-26 14:29:03
【问题描述】:

如果根据数据库可用,我如何验证输入文本字段中输入的用户名?我正在使用 JSF2。

【问题讨论】:

  • 什么是“检查可用性功能”?
  • 嗨,我想用数据库交叉验证文本框中给定的用户名,无论用户名是否分配给任何人。

标签: ajax validation jsf


【解决方案1】:

只需自己实现一个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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2010-10-24
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多