我正在使用 facelets jsf 2.0 和 primefaces 3.0.M2 组件库。我正在尝试实现动态行数,包括发生数据表选择时填充的输入字段。
每当进行选择时,都会使用输入字段正确生成动态行,但在第一次选择后续选择之后,动态行数会正确更改,但输入字段不会更新并继续显示第一次选择的输入。
这是我在 facelet 中迭代列表的方式;
<ui:repeat value="#{goalEntranceBean.selectedCard.parameterList}" var="prmBean" >
<li><h:outputText value="#{prmBean.lookUp.value}"/></li>
<li>
<h:outputText value="Weight:"/>
<p:inputText id="wx" required="true" value="#{prmBean.weight}">
</p:inputText>
<h:outputText value="Percent:"/>
<p:inputText required="true" value="#{prmBean.percent}">
</p:inputText>
</li>
</ui:repeat>
我的 bean,我在其中获取卡片列表并在数据表中使用 rowSelect 事件设置 selectedCard。
@ManagedBean(name = "goalEntranceBean")
@ViewScoped
public class GoalEntranceAction implements Serializable {
private List<ScoreCard> personalCards = new ArrayList<ScoreCard>();
private ScoreCard selectedCard = new ScoreCard();
......
}
当我在调试模式下检查时,我可以看到真实的列表,但在屏幕上元素没有改变。