我目前正在尝试使用h:selectOneMenu从中获取输入 用户。当用户提交表单时,用户要么相同 页面再次或不同的页面。只要用户总是选择第一个可用选项,一切都很好,但只要他选择另一个选项,id = selection1的组件就会抱怨:验证错误 - 值无效。
以下是表格:
<h:form styleClass="form-horizontal">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-8">
<div class="checkbox">
<label><h:selectBooleanCheckbox value="#{startBean.abstainFromItem}"></h:selectBooleanCheckbox>Bei dieser Frage enthalten</label>
</div>
</div>
</div>
<div class="form-group">
<ui:fragment rendered="#{startBean.currentItem.type != 'M_OF_N'}">
<h:outputLabel for="selection1" styleClass="col-sm-2" value="Option(en) auswählen:"/>
<div class="col-sm-8">
<h:selectOneMenu value="#{startBean.buffer[0]}" styleClass="form-control" id="selection1">
<f:converter converterId="javax.faces.Integer"/>
<ui:param name="iValue" value="0"/>
<c:forEach items="#{startBean.currentItem.options}" var="option1">
<f:selectItem itemLabel="#{option1.title}" itemValue="#{iValue}"/>
<ui:param name="iValue" value="#{iValue + 1}"/>
</c:forEach>
</h:selectOneMenu>
<h:message for="selection1"/>
</div>
</ui:fragment>
<ui:fragment rendered="#{startBean.currentItem.type == 'M_OF_N'}">
<h:outputLabel for="selection2" styleClass="col-sm-2" value="Option(en) auswählen:"/>
<div class="col-sm-8">
<h:selectManyMenu styleClass="form-control" id="selection2" value="#{startBean.buffer}">
<f:converter converterId="javax.faces.Integer"/>
<ui:param name="lValue" value="0"/>
<c:forEach items="#{startBean.currentItem.options}" var="option2">
<f:selectItem itemLabel="#{option2.title}" itemValue="#{lValue}"/>
<ui:param name="lValue" value="#{lValue + 1}"/>
</c:forEach>
</h:selectManyMenu>
</div>
</ui:fragment>
</div>
<ui:debug/>
<ui:fragment rendered="#{startBean.index lt startBean.count}">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-8">
<h:commandButton styleClass="btn btn-primary" value="Nächstes Item" action="submitvote">
<f:actionListener binding="#{startBean.nextItem()}"/>
</h:commandButton>
</div>
</div>
</ui:fragment>
<ui:fragment rendered="#{startBean.index == startBean.count}">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-8">
<h:commandButton styleClass="btn btn-primary" value="Stimmzettel abgeben" action="index">
<f:actionListener binding="#{startBean.submit()}"/>
</h:commandButton>
</div>
</div>
</ui:fragment>
</h:form>
类似问题有各种答案,但它们都有用 f:selectItems标签,而我没有。我也不认为我需要实现一个等于方法。