【问题标题】:Getting warning "getClientId should not be called while the view is being constructed."收到警告“在构建视图时不应调用 getClientId。”
【发布时间】:2011-11-30 15:35:52
【问题描述】:

在我的 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。 我在web.xml 中尝试了org.apache.myfaces.trinidad.CLIENT_ID_CACHING 选项,并观察了所有选项为ON、OFF 和DEBUG 的行为。

【问题讨论】:

    标签: jsf trinidad


    【解决方案1】:

    看起来,在屏幕中创建下拉菜单时某处发生了 NPE。 代码已修复,警告不再出现。

    【讨论】:

      【解决方案2】:

      我的解决方案是在结束此状态之前以编程方式在支持 bean 中刷新任何父级。

      注意,这条消息似乎已于 2010 年 5 月在修订版 942933 中添加到 java/org/apache/myfaces/trinidad/component/UIXComponentBase.java,以防止 clientId 为空时发生 NPE。

      【讨论】:

      • 很好的研究,你有链接吗?你是如何以编程方式刷新父母的?您的回答很可能是有效的,但请在回答问题时详细说明!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2011-07-01
      • 1970-01-01
      • 2020-11-29
      相关资源
      最近更新 更多