私がする時:
<h:form>
<ui:repeat ...>
<ui:fragment rendered="#{xyz.type eq 1}"
<h:inputText value="#{xyz}"/>
</ui:frament>
<ui:fragment rendered="#{xyz.type eq 2}"
<my:component value="#{xyz}"/>
</ui:frament>
<ui:repeat />
</h:form>
encodeAll()
呼び出されmy:component
ず、その後、既存の値は表示されません。
私が次のことをしたら
<ui:repeat ...>
<ui:fragment rendered="#{xyz.type eq 1}"
<h:inputText value="#{xyz}"/>
</ui:frament>
<ui:fragment rendered="#{xyz.type eq 2}"
<h:form>
<my:component value="#{xyz}"/>
</h:form>
</ui:frament>
<ui:repeat />
もちろん、後者の例は、動的な入力が必要なため、役に立ちません。datepicker、inputtext、...関数などの既存の(デフォルトの)コンポーネントはOKです。既存の値を表示しないのは私のコンポーネントだけです(encodeAllは呼び出されません)。
また、ui:repeatの代わりにh:datatableコンポーネントを試しましたが(理由はわかりません)、同じ結果が得られました。
INFO: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/webclient'
INFO: Running on PrimeFaces 3.5
INFO: Running on PrimeFaces Extensions 0.6.3