我正在使用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}
and #{question.maximumValue}
,它们对我的问题有正确的值。