2011-11-14 13 views
1

<ui:repeat />を使用するJSF2アプリケーションで、それぞれがコレクション内のアイテムにリンクされたテキストボックスをレンダリングしています。単一の<h:messages />タグの入力後にエラーメッセージを表示する必要があります。uiリピート入力用のJSFメッセージ

同時に、私は<ui:repeat />タグの外側にいくつかの他の必須フィールドがあります。 は入力の隣にエラーメッセージが表示されるはずですから、対応する<h:message />タグがあります。ここで問題となるのは、外部フィールドの検証をトリガするたびに、そのメッセージが<ui:repeat /><h:messages />タグにも表示されることです。ここで

コードです:

<table cellpadding="0" cellspacing="0" width="100%"> 
    <tr> 
     <td><h:outputLabel value="Items"/></td> 
     <td> 
      <ui:repeat var="i" value="#{itemsBean.itemsCount}" id="items"> 
       <h:inputText id="itemTitle" value="#{itemsBean.items[i]}" required="true" /> 
       <h:panelGroup layout="block" styleClass="clear" rendered="#{((i+1) % 10 == 0)}" /> 
      </ui:repeat> 
      <h:messages id="itemsMessages" showDetail="false" showSummary="true" styleClass="error_list" /> 
     </td> 
     <td><h:outputLabel value="Required Field" /></td> 
     <td> 
      <h:inputText id="requiredField" value="#{itemsBean.requiredField}" /> 
      <h:message for="requiredField" showDetail="false" showSummary="true" styleClass="error_list" /> 
     </td> 
    </tr> 
</table> 

私は、これはJSF検証が動作する方法であることを知っているが、私は繰り返し項目の検証の概要に表示されてから外部入力のメッセージを阻止する必要があります。 ありがとうございます。

+0

この問題を解決しましたか? – edhedges

+1

@edhedges、私は恐れていません。私は回避策を使用しましたが、メッセージをの外に移動し、メッセージをサーバ側に設定しました。 –

答えて

0

<h:messages id="itemsMessages" showDetail="false" showSummary="true" styleClass="error_list" globalOnly="true"/>

これはのみのために、属性を設定していないと、メッセージのコンポーネントからのメッセージを表示するコンポーネントが発生してください。

+0

私は試しましたが、今度は ' 'の入力メッセージは表示されません。 –

関連する問題