динамический пользовательский интерфейс: включить с пользовательским интерфейсом: фрагмент: компонент с визуализированным ложным все еще сделать внутри дерева компонентов
Я вынужден использовать очень старую версию MyFaces 2.0.5, я думаю, и динамическое включение с EL вызывает много проблем, поэтому я переключаюсь на статическое включение с помощью ui: фрагмента
<ui:fragment rendered="#{filtersPopup.filterFileName == 'checkBoxFilters'}">
checkBoxFilters
<ui:include src="/analytics/checkBoxFilters.xhtml" rendered="#{filtersPopup.filter != null}"/>
</ui:fragment>
<ui:fragment rendered="#{filtersPopup.filterFileName == 'DateRelativeFilter'}">
DateRelativeFilter
<ui:include src="/analytics/DateRelativeFilter.xhtml" rendered="#{filtersPopup.filter != null}"/>
</ui:fragment>
<ui:fragment rendered="#{filtersPopup.filterFileName == 'listboxFilter'}">
listboxFilter
<ui:include src="/analytics/listboxFilter.xhtml" rendered="#{filtersPopup.filter != null}"/>
</ui:fragment>
При этом он по-прежнему жалуется на дублирующийся идентификатор, потому что я использую один и тот же идентификатор для пар этих исходных файлов. Так что кажется, что дажеrendered
должно бытьfalse
, он все еще делает это в дереве компонентов. Однако дубликат идентификатора в порядке. Я могу это легко исправить, поэтому теперь, когда я отправляю форму, я получил это исключение
/analytics/checkBoxFilters.xhtml at line 24 and column 118 value="#{filtersPopup.filter.groups}": Property 'groups' not found on type ListBoxFilter
так как вы можете видеть из исключения, этоListBoxFilter
это объект, который я хочу, поэтому включайте только ListBoxFilter.xhtml, но к нему обращаютсяcheckBoxFilters.xhtml
отсюда и ошибка. Любая идея, как решить эту проблему, пожалуйста?