2 つの p:commandButtons を持つ ah:form があります。1 つのボタンは、コンポーネント内の ui:repeat 内にネストされています。ui:include の外側にあるボタンは、アクション メソッドによって返されたターゲットの宛先に正しく移動しているようです。ただし、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 の外に再配置すると、機能します。
何か案は?