标记ID设置在通常不会呈现为标记的组件上

时间:2017-05-12 09:04:46

标签: java wicket

我收到此消息:

  

在通常未呈现为标记的组件上设置标记ID。标记ID:pnlMessages3a,组件标识:pnlMessages,组件标记:wicket:panel。

将面板添加到封闭面板中,如下所示:

add(new MessagePanel("pnlMessages"));

in html

<wicket:panel wicket:id="pnlMessages">tblData</wicket:panel>

在MessagePanel中,我正在调用 super(id)传递组件ID&#34; pnlMessages&#34;到父类。 MessagePanel类中没有其他组件可以启用OutputMarkupId。

那为什么我会收到警告?

我必须提到使用 AjaxSelfUpdatingTimerBehavior

在MessagePanel中更新一些标签和图像

1 个答案:

答案 0 :(得分:2)

原因是你滥用<wicket:panel>。 其目的是包装MyPanel.html的HTML内容。即Wicket将使用内容<wicket:panel> CONTENT </wicket:panel>作为标记,该标记应包含在另一个面板或页面中。

此外,Wicket在生产模式下不会呈现任何<wicket:xyz>元素。因此,尝试使用Ajax更新此类HTML元素将失败,因为它不会出现在DOM中。

您应该将其替换为:<div wicket:id="pnlMessages">tblData</div>