Używanie walidatora z atrybutem zmiennej w interfejsie użytkownika: powtórz

używamcom.sun.faces wersja2.1.18. W mojej aplikacji mam dynamiczną listę pytań. używam<ui:repeat> renderować każde pytanie. W zależności od typu pytania renderuję typ komponentu wejściowego i walidację. W przypadku pytania o zakres numerów używam<h:inputText> z<f:validateLongRange>.

Problem, z którym się spotykam, polega na tym, żeminimum imaximum atrybuty<f:validateLongRange> są zawsze ustawione na minimalną i maksymalną wartość pierwszego pytania. Tak więc, jeśli użyjesz walidatora na innym niż pierwsze pytanie, nie powiedzie się. Czy to ma się stać? Czy istnieje sposób na sprawdzenie poprawności dynamicznie generowanych komponentów? Mam nadzieję, że można to rozwiązać bez przechodzenia na<c:forEach>.

Fragment kodu:

<ui:repeat value="#{questionnaire.questionsCollection}"
           var="question" varStatus="status">
  ..
  <h:inputText rendered="#{question.qutyId.ofTypeNumber}"
               value="#{filledQuestionnaire.answersCollection[status.index].answerValue}">
    <f:validateLongRange minimum="#{question.minimumValue}"
                         maximum="#{question.maximumValue}"/>
  </h:inputText>
  ..
</ui:repeat>

Wyprowadziłem#{question.minimumValue} i#{question.maximumValue}i mają poprawne wartości dla mojego pytania.

questionAnswers(1)

yourAnswerToTheQuestion