我收到此消息:
在通常未呈现为标记的组件上设置标记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中更新一些标签和图像答案 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>