Использование валидатора с атрибутом переменной в пользовательском интерфейсе: repeat
я использую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" 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>
Я вывел#{question.minimumValue}
а также#{question.maximumValue}
и они имеют правильные значения для моего вопроса.