Когда я: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, ... function ok, только мой компонент не показывает существующие значения (encodeAll not called).
Я также пробовал h: datatable component вместо ui: repeat (не уверен, почему), с такими же результатами.
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
Это обычай компонент http://balusc.blogspot.de/2013/01/composite-component-with-multiple-input.html - вдохновленный вашим кодом – apod
Это не особый компонент, это составной компонент. – BalusC