Здравствуйте, Выскакивает вот такое окошко, когда начинаешь вводить логин в inputText. При том, что валидация работает при вводе логина, но при каждом вводе символа выскакивает вот это окошко.
Понятно, что ошибка в ajax, а вот почему?
Вот так выглядит код:
<table align="left" width="350">
<tr>
<td>
<h:inputText id="username" value="#{user.username}" required="true" requiredMessage="#{}">
<f:validator validatorId="LoginValidator"/>
<f:ajax event="keyup" render="invalidLogin"/>
</h:inputText>
</td>
<td>
<h:commandButton ... />
</td>
</tr>
<tr>
<td colspan="3">
<p><h:message id="invalidLogin" for="username"/></p>
</td>
</tr>
</table>
@FacesValidator("LoginValidator")
public class LoginValidator implements Validator {
@Override
public void validate(FacesContext facesContext, UIComponent uiComponent, Object o) throws ValidatorException {
ResourceBundle bundle = ResourceBundle.getBundle("itnls.messages", FacesContext.getCurrentInstance().getViewRoot().getLocale());
try {
String newValue = o.toString();
if (newValue.length() < 5){
throw new IllegalArgumentException(bundle.getString("login_length_error"));
}
if (!Character.isLetter(newValue.charAt(0))){
throw new IllegalArgumentException(bundle.getString("first_letter_error"));
}
if (getTestArray().contains(newValue)){
throw new IllegalArgumentException(bundle.getString("used_name"));
}
} catch (IllegalArgumentException e){
FacesMessage message = new FacesMessage(e.getMessage());
message.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(message);
}
}
private ArrayList<String> getTestArray(){
ArrayList<String> list = new ArrayList<String>();
list.add("username");
return list;
}
P.S: При вводе в гугл ошибку, результатов нет.