Usando o validador com um atributo variável em ui: repeat
estou a usarcom.sun.faces
versão2.1.18
. No meu aplicativo, tenho uma lista dinâmica de perguntas. eu uso<ui:repeat>
para renderizar cada pergunta. Dependendo do tipo de pergunta, eu renderizo um tipo de componente de entrada e validação. No caso de uma questão de gama numérica eu uso<h:inputText>
com<f:validateLongRange>
.
O problema que me deparo é que ominimum
emaximum
atributos no<f:validateLongRange>
estão sempre definidos para o valor mínimo e máximo da primeira pergunta. Então, quando você usa o validador em qualquer outro, a primeira pergunta falha. Isso deveria acontecer? Existe uma maneira de obter validação trabalhando em componentes gerados dinamicamente? Espero que possa ser resolvido sem mudar para<c:forEach>
.
Fragmento de código:
<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>
Eu produzi#{question.minimumValue}
e#{question.maximumValue}
, e eles têm os valores corretos para minha pergunta.