Получение предупреждения «getClientId не должен вызываться во время конструирования представления». - PullRequest
0 голосов
/ 30 ноября 2011

В моем приложении JSF у меня есть одна страница JSP, которая генерирует предупреждение, которое иногда отображается. В лог-файлах я вижу что-то вроде этого:

WARNING: getClientId should not be called while the view is being constructed. 
         Component-ID: j_id18

Компонент, который генерирует предупреждение, выглядит следующим образом:

<tr:panelCaptionGroup captionText="Jobs">
<tr:poll pollListener="#{jobBean.update}" id="poll" interval="#{msg.cfg_pollingInterval}" />
<tr:table allDetailsEnabled="true" partialTriggers="::poll ::groupFilter">
  <f:facet name="detailStamp" >
    <tr:table var="trg" value="#{subbean}" >
       ...stuff...
</tr:table>
  </f:facet>
  <tr:column>
    <h:panelGroup>
  <tr:commandLink  />
    </h:panelGroup>
  </tr:column>
  <tr:column />
</tr:table>

Может ли быть проблема с опросом в таблице?

Я использую Тринидад 2.0.0. Я попробовал опцию org.apache.myfaces.trinidad.CLIENT_ID_CACHING в web.xml, и я наблюдаю поведение всех опций: ON, OFF и DEBUG.

Ответы [ 2 ]

0 голосов
/ 29 января 2016

Мое решение состояло в том, чтобы программно обновить любого родителя в компоненте поддержки до того, как он окажется в этом состоянии.

Обратите внимание, похоже, что это сообщение было добавлено в java / org / apache / myfaces / trinidad / component / UIXComponentBase.java в мае 2010 года в редакции 942933 для предотвращения и NPE, когда clientId равен нулю.

0 голосов
/ 20 июля 2012

Как кажется, где-то возникла NPE при создании выпадающего меню на экране. Код был исправлен, и предупреждение больше не появляется.

...