잘못된 곳
String name = (String) value;
if(name.trim().length()==0){
System.out.println("Name *******");
String message = bundle.getString("Name_Required");
FacesContext.getCurrentInstance().addMessage("Reg:firstName",
new FacesMessage(FacesMessage.SEVERITY_ERROR, message,message));
}
if(name.trim().equalsIgnoreCase("tom")){
String message = bundle.getString("Name_exists");
FacesContext.getCurrentInstance().addMessage("Reg:firstName",
new FacesMessage(FacesMessage.SEVERITY_ERROR, message,message));
}
}
사람이 저를 제안 할 수, 당신을 도울하는 것이 더 쉽습니다. 그래서 나는 당신이 당신의 JSF 페이지에 그런 일을하는 것이 좋습니다 :
<h:inputText id="firstName" ... validator="#{aBean.checkFirstName}">
자바 코드에 문제 것은 오류가 발생하면 어떤 ValidatorException를 포기하지 않는다는 것입니다. 따라서, 귀하의 코드는 다음과 같아야합니다 :
public void checkFirstName(FacesContext facesContext, UIComponent component, Object value) {
String name = (String) value;
if ((name == null) || name.trim().length() == 0) {
System.out.println("Name *******");
String message = bundle.getString("Name_Required");
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); // Throw the required error
}
if (name.trim().equalsIgnoreCase("tom")) {
String message = bundle.getString("Name_exists");
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); // Throw the already exist error
}
}
이 방법은,이 분야에 채워진 값이 비어 있거나 이미 ValidatorException가 발생합니다, 존재하는 경우, 사용자가 오류 메시지가 나타납니다합니다 (추가하는 것을 잊지 마세요 <h:messages/>
또는 <h:message/>
구성 요소) 양식을 제출하지 마십시오!
내 문제가 해결되었습니다 –
문제가 해결되면 올바른 대답으로 내 대답을 선택하십시오 (해당되는 경우) (왼쪽의 0 아래 아이콘을 클릭하십시오) – romaintaz