當我不稱爲複合組件上:encodeAll()時呈現的屬性被包裹
<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()
doesen't被調用上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未調用)。
我也嘗試過h:datatable組件而不是ui:重複(不知道爲什麼),結果相同。
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
它是自定義組件(Java)還是組合組件(XHTML)?你的問題標題和問題標籤是相互矛盾的。要知道區別,請閱讀http://stackoverflow.com/questions/6822000/when-to-use-uiinclude-tag-files-composite-components-and-or-custom-componen/6822269#6822269 – BalusC 2013-03-25 12:00:40
這是一個自定義組件http://balusc.blogspot.de/2013/01/composite-component-with-multiple-input.html - 受你的代碼啓發 – apod 2013-03-25 12:25:12
這不完全是一個自定義組件,這是一個複合組件。 – BalusC 2013-03-25 12:26:28