Я предлагаю сделать шаг назад и выяснить , почему возникает проблема с дублирующимся идентификатором.После того, как вы уничтожили основную причину, просто исправьте ее «обычным» способом, а не создавайте свой собственный UINamingContainer
компонент.
Существует несколько возможных причин ошибок дублирующегося идентификатора, которые помогут вам в дальнейшем выявить его.:
- Один и тот же ID используется для различных
UIComponent
s внутри того же UINamingContainer
компонента. - Физически разные компоненты связаны с таким же
UIComponent
свойством того же компонента. - Только JSP:
f:subview
объявлено на родительской странице вместо include page. - такая же включаемая страница включена множественный раз внутри одного и того же
UINamingContainer
компонента. - Компонент был создан динамически (например,
new UIComponent()
) без с назначенным идентификатором.
Здесь UINamingContainer
находится под каждым <h:form>
, <h:dataTable>
и <f:subview>
.
Если приведенные выше предложения не помогают, tЗатем обновите ваш вопрос, включив в него наименьший возможный фрагмент кода (таким образом, без всего нерелевантного кода / беспорядка, таких как несвязанные компоненты, библиотеки, HTML / CSS / JS / и т. д.), который воспроизводит точно такую же проблему, просто скопировав 'n'paste'n'rrning без каких-либо изменений.