2011-12-23 26 views
3

如何根據數據庫驗證輸入文本字段中輸入的用戶名是否可用?我正在使用JSF2。如何驗證數據庫中用戶名的可用性?

+0

什麼是「檢查可用性功能」是什麼意思? –

+0

hi ken,我想交叉驗證在數據庫的文本框中給定的用戶名是否用戶名分配給任何人。 – sateesh

回答

5

你自己實現一個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" /> 
相關問題