我怎样才能正确地从阿帕奇检票组件删除AjaxSelfUpdatingTimerBehavior?

StackOverflow https://stackoverflow.com/questions/1654485

  •  11-09-2019
  •  | 
  •  

我在使用添加,然后除去在Apache的检票的AjaxSelfUpdatingTimerBehavior麻烦。该行为被添加不错,但随后当我删除的行为,我收到了“页面过期”在浏览器中拿出很快,我猜是因为去除不干净。我的设立基本上是其启动的定时变更,以及两个链接标签:“走出去”和“停止”。我希望能够点击“走出去”,然后选择“停止”(很明显,我知道它永远不会解决的其他方式!)。这里是我完整的标记:

<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);
    }
}

我使用检票1.4.3。

任何帮助非常赞赏。感谢。

有帮助吗?

解决方案

我通过使用stop()方法而不是试图移除整个行为解决了这个

其实,我的的希望在某个时候停止它(后完全删除,因为我的解决方案涉及newing行为了,每次我打“走出去”,我想继续停而不累积启动一百万的行为),所以我传开通过保持行为的列表上的一些后来往返于被移除。

其他提示

这本来是很好的能够调用启动()或AbstractAjaxTimerBehavior东西重新启用定时器行为。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top