使用<c:forEach>
时,项目值未正确替换。如果我在<a4j:repeat>
&gt;中使用<ui:repeat>
或<c:forEach>
而不是<rich:dataTable
,则单选按钮无法正常呈现。我也在http://community.jboss.org/wiki/Cantusea4jrepeattoiteratethemenuItemstabsetc
如何解决此问题?
<f:selectItems>
正在进行中,但我想向服务器发送一个选择类型
<rich:dataTable var="answer" value="#{answers}">
<rich:column>
<f:selectOneRadio value="#{response.value}">
<c:forEach items="#{answer.choices}" var="choice">
<f:selectItem itemLabel="#{choice.value}" itemValue="#{choice.type}"/>
</c:forEach>
</f:selectOneRadio>
</rich:column>
</rich:dataTable>
答案 0 :(得分:3)
如果您已经使用JSF 2.x,那么您可以使用以下构造:
<f:selectItems value="#{answer.choices}" var="choice" itemValue="#{choice.type}" itemLabel="#{choice.value}" />
如果你仍然使用JSF 1.x,那么最好是在f:selectItems
bean的构造函数中使用answer
和以下逻辑来预先填充它:
this.selectItems = new ArrayList<SelectItem>();
for (Choice choice : this.choices) {
selectItems.add(new SelectItem(choice.getType(), choice.getValue()));
}
这样你最终可以
<f:selectItems value="#{answer.selectItems}" />