2016-07-16 13 views
1

私は、Javaの例外をスローする検証エラーメッセージを解析していますJSFドロップダウンlist.Hereは私のコード使用JSF SelectOneMenuための別の場所に2つの検証メッセージ

<h:selectOneMenu id="selectedMenu" value="#{bean.selectedVal}" validator="#{bean.validate}" validatorMessage="#{bean.message}"> 
    <f:selectItems value="#{bean.list}" .../> 
    <f:ajax event="change" render="frm:msgSelectedMenu1" /> 
</h:selectOneMenu> 
<h:message for="selectedMenu" style="color:red" id="msgSelectedMenu1" /> 
<h:message for="selectedMenu" style="color:green" id="msgSelectedMenu2" /> 

で使用しています。成功しmsgSelectedMenu2 『「私はといくつかの選択された項目のための別のエラー・メッセージ(『Error_Message_2』)を設定したい何らかの原因でmsgSelectedMenu1'.But』で結合し、この原因のエラーメッセージで

public void validate(FacesContext context, UIComponent component, Object value) 
     throws ValidatorException { 
... 
if (condition 1) { 
    FacesMessage msg = new FacesMessage(); 
    setMessage("Error_Message_1"); 
    throw new ValidatorException(msg); 
}} 

答えて

1

あなたはvalidator属性に

<h:message for="selectedMenu" style="color:red" id="msgSelectedMenu1" rendered="${foo.message1}" /> 
<h:message for="selectedMenu" style="color:green" id="msgSelectedMenu2" 
rendered="${foo.message2}" /> 


public void foo(){ 
     if (condition 1) { 
      FacesMessage msg = new FacesMessage(); 
      setMessage("Error_Message_1"); 
      message1 = true; 
      message2 = false; 
      throw new ValidatorException(msg); 

     } 
     } 
を削除、あなたは actionListenerで値をチェックして、 h:messagerenderedを使用して ValidatorExceptionを投げる、 f:ajaxactionListenerを使用しようとすることができます
関連する問題