Ситуация
JavaServer Faces Версия: 2.1.6
Я получил родительский составной компонент с двумя вложенными cc. Одна из них содержит HtmlPanelGroup, которая имеет привязку к компоненту. Я использую эту привязку для программного добавления HtmlCommandLink-Objects в HtmlPanelGroup.
Позвольте называть некоторые идентификаторы:
- PARENT для родителя cc
- CHILD_FIRST для первого дочернего cc, вложенного в PARENT
- CHILD_SECOND для второго дочернего cc, вложенного в PARENT
- GROUP для PanelGroup, вложенной в CHILD_SECOND
- LINK_1 для первого объекта HtmlCommandLink-объекта, прогаммически добавленного в группу GROUP
Expectation
Я ожидаю следующее цепочку ID (с по умолчанию javax.faces.SEPARATOR_CHAR):
PARENT (Composite Component, declarative)
PARENT:CHILD_FIRST (Composite Component, declarative)
PARENT:CHILD_SECOND (Component Component, declarative)
PARENT:CHILD_SECOND:GROUP (HtmlPanelGroup, declarative)
PARENT:CHILD_SECOND:GROUP:LINK_1 (HtmlCommandLink, programmatically)
Проблема
Идентификатор объекта HtmlCommandLink-Object ошибочен при первом посещении страницы. Вместо "PARENT: CHILD_SECOND: GROUP: LINK_1" идентификатор только "CHILD_SECOND: GROUP: LINK_1". После обновления страницы идентификатор будет правильно "PARENT: CHILD_SECOND: GROUP: LINK_1". Фактически, каждый компонент во втором составном компоненте ( "CHILD_SECOND" ) пропускает первую часть идентификатора ( "PARENT" ). После обновления все идентификаторы указаны правильно.
Решение
Я могу автоматически обновлять страницу после первого посещения. Но я не хочу.