a4jを使ってユーザ名を確認しているかどうかを確認するには エラーメッセージが表示されているときにエラーメッセージが表示されますが、エラーメッセージを表示したあと それはそれは A4Jの検証でもフォームが送信されない+ jsf
必要= "true" のバリデータ= "#{RegistrationBean.checkFirstName}">ます。public void checkFirを提出されないのinputTextに必要= trueに来るとき を提出します私は、JSFコードで
a4jを使ってユーザ名を確認しているかどうかを確認するには エラーメッセージが表示されているときにエラーメッセージが表示されますが、エラーメッセージを表示したあと それはそれは A4Jの検証でもフォームが送信されない+ jsf
必要= "true" のバリデータ= "#{RegistrationBean.checkFirstName}">ます。public void checkFirを提出されないのinputTextに必要= trueに来るとき を提出します私は、JSFコードで
を間違っていたところ
{
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));
}
}
stName(のFacesContextのFacesContext、UIComponentですコンポーネント、オブジェクトの値が)誰も私を提案することができ、あなたを助けるために容易になるだろう。だから私は、あなたのJSFページでそのような何かを持っていることを示唆している:
<h:inputText id="firstName" ... validator="#{aBean.checkFirstName}">
Javaコード上の問題は、エラーが発生したときに、あなたがどんな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