我在Apache Wicket中添加然后删除AjaxSelfUpdatingTimerBehavior时遇到了麻烦.行为被添加好了,但是一旦我删除了行为,我很快就会在浏览器中出现“Page Expired”,我想是因为删除不干净.我的设置基本上是一个标签,它通过计时器开始改变,还有两个链接:“go”和“stop”.我希望能够点击“go”然后“停止”(显然我知道它将永远不会以相反的方式工作!).这是我的完整标记:
<html> <body> <span wicket:id="message">message will be here</span><br/> <a wicket:id="go">Go</a><br/> <a wicket:id="stop">Stop</a> </body> </html>
这是我的代码:
// imports all from standard wicket public class HomePage extends WebPage { private static final int INTERVAL = 500; public HomePage(final PageParameters parameters) { final Component label = new Label("message","Hello").setOutputMarkupId(true); add(label); final IBehavior updater = new AjaxSelfUpdatingTimerBehavior(Duration .milliseconds(INTERVAL)) { @Override protected void onPostProcessTarget(AjaxRequestTarget target) { label.setDefaultModelObject(String.valueOf(System.nanoTime())); } }; AjaxLink<String> go = new AjaxLink<String>("go") { @Override public void onClick(AjaxRequestTarget target) { label.add(updater); target.addComponent(label); } }; AjaxLink<String> stop = new AjaxLink<String>("stop") { @Override public void onClick(AjaxRequestTarget target) { label.remove(updater); target.addComponent(label); } }; add(go,stop); } }
我正在使用Wicket 1.4.3.
任何帮助非常感谢.谢谢.