我在 ah:panelgroup 内有一个 ui:repeat,在面板外有一个 af:ajax。f:ajax 点击事件触发 h:panelgroup 上的渲染。当我加载页面时,转发器会在列表中显示我的 5 个项目。当我第一次单击该按钮时, h:panelgroup 加倍为 10 个项目,随后的每次单击都会刷新面板上的前 5 个项目(应该如此)。我究竟做错了什么?渲染事件不应该总是刷新带有中继器的面板吗?
豆:
@ManagedBean(name = "TestBean")
@RequestScoped
public class TestBean {
private List testStrings;
public TestBean() {
Random rn = new Random(System.currentTimeMillis());
testStrings = Arrays.asList(rn.nextInt(),rn.nextInt(),rn.nextInt(),rn.nextInt(),rn.nextInt());
}
}
public List getTestStrings() {
return testStrings;
}
public void setTestStrings(List testStrings) {
this.testStrings = testStrings;
}
JSF:
<h:commandButton value="Refresh">
<f:ajax event="click" render="testPanel"></f:ajax>
</h:commandButton>
<p>
<h:panelGroup id="testPanel">
<ui:repeat var="option" value="#{TestBean.testStrings}" varStatus="status">
<p>
<h:outputText value="#{option}"></h:outputText>
</p>
</ui:repeat>
</h:panelGroup>
</p>
我认为我正在使用 mojarra 2.1。
谢谢。
回答
<p>...</p>
如果我删除并重新替换它,问题就不会发生<h:outputText value="#{option}"></h:outputText><br/>