我在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.
任何帮助非常感谢.谢谢.