我在我的网页上添加了一个FeedbackPanel,期望每当组件响应Ajax行为时它都会刷新。为此,我将覆盖页面中的onEvent方法,如下所示:
@Override
public void onEvent(IEvent<?> event) {
Object payload = event.getPayload() ;
if ( payload instanceof AjaxRequestHandler) {
AjaxRequestHandler target = (AjaxRequestHandler)payload ;
target.add(console); // console is the FeedbackPanel instance
}
super.onEvent(event);
}
在FeedbackPanel刷新的意义上它运行得相当好,但是现在任何新的Ajax事件都会清除面板。显示的内容是响应Ajax事件的组件使用info("...");
创建的消息。
我希望这些消息能够持续存在。
我做错了什么?
谢谢! 埃里克
答案 0 :(得分:1)
检查org.apache.wicket.settings.ApplicationSettings#setFeedbackMessageCleanupFilter()
。默认情况下,Wicket使用反馈清理过滤器来删除所有呈现的反馈消息。一旦FeedbackPanel在Ajax请求中重新呈现自身,它就会将此Ajax请求中报告的所有反馈消息标记为已呈现。
您必须将其替换为决定何时清理/删除消息的自定义实现。