com.sun.facesバージョンを使用して2.1.18います。私のアプリケーションには、質問の動的リストがあります。私は<ui:repeat>各質問をレンダリングするために使用します。質問の種類に応じて、入力コンポーネントと検証の種類をレンダリングします。数値範囲の質問の場合は、 を使用<h:inputText>し<f:validateLongRange>ます。
私が遭遇する問題は、 の属性minimumとmaximum属性<f:validateLongRange>が常に最初の質問の最小値と最大値に設定されていることです。したがって、最初の質問以外でバリデーターを使用すると、失敗します。それは起こるはずですか?動的に生成されたコンポーネントで検証を機能させる方法はありますか? に切り替えずに解決できることを願っています<c:forEach>。
コードスニペット:
<ui:repeat value="#{questionnaire.questionsCollection}"
var="question">
..
<h:inputText value="..">
<f:validateLongRange minimum="#{question.minimumValue}"
maximum="#{question.maximumValue}"/>
</h:inputText>
..
</ui:repeat>
と を出力#{question.minimumValue}しまし#{question.maximumValue}たが、質問に対する正しい値が含まれています。