我有 ah:form 和两个 p:commandButtons。一个按钮嵌套在组件内的 ui:repeat 内。ui:include 外部的按钮似乎可以正确导航到 action 方法返回的目标。然而,嵌套在 ui:include 和 ui:repeat 中的相同按钮似乎重新初始化了视图范围的 bean,而不是导航到操作目标。有没有人有解释和解决方案或解决方法?
代码大致是这样的。mybean 是视图范围的。
<h:form id="myform">
<p:commandButton value="DoIt" action="#{mybean.doit()}" ajax="true"/> <!-- this works! -->
<ui:include src="/sections/util/mycomp.xhtml">
<ui:param name="backingbean" value="#{mybean}"/>
</ui:include>
</h:form>
这是组件。
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
...
xmlns:p="http://primefaces.org/ui">
<ui:repeat value="#{backingbean.mylit}" var="item" varStatus="status">
<p:commandButton value="DoIt" action="#{backinbean.doit()}" ajax="true"/> <!-- this doesn't -->
</ui:repeat>
</ui:composition>
奇怪的是,如果我将嵌套的 p:commandButton 重新定位在 ui:component 内但在 ui:repeat 之外,那么它可以工作。
有任何想法吗?