Как обновить идентификатор, сгенерированный из бэк-бина - PullRequest
1 голос
/ 19 января 2012
<p:outputPanel>
    <h:selectOneRadio value="#{myBean.favColor1}">
  <f:selectItem itemValue="Red" itemLabel="Color1 - Red" />
  <f:selectItem itemValue="Green" itemLabel="Color1 - Green" />
  <f:selectItem itemValue="Blue" itemLabel="Color1 - Blue" />
    </h:selectOneRadio>
    <p:ajax update="picker,#{myBean.clientId}"/>
</p:outputPanel>

Мне нужно обновить компонент, идентификатор которого генерируется программно.

1 Ответ

2 голосов
/ 19 января 2012

Идентификатор клиента должен иметь префикс с символом-разделителем контейнера именования по умолчанию :, чтобы он был преобразован в абсолютное значение UIViewRoot вместо относительного родительского контейнера именования (который будет работать для идентификаторов компонентов, но не для идентификаторы клиента).

<p:ajax update="picker,:#{myBean.clientId}"/>

В качестве совершенно другой альтернативы (я нахожу, что привязка идентификатора клиента к базовому компоненту довольно зудит), просто привяжите компонент к представлению и ссылайтесь на него вместо промежуточного управляемого компонента.

<h:someComponent binding="#{foo}" />
...

<p:ajax update="picker,:#{foo.clientId}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...