java – 如何从Apache Wicket中的组件中正确删除AjaxSelfUpdatingTimerBehavio
发布时间:2020-05-24 23:51:09 所属栏目:Java 来源:互联网
导读:我在Apache Wicket中添加然后删除AjaxSelfUpdatingTimerBehavior时遇到了麻烦.行为被添加好了,但是一旦我删除了行为,我很快就会在浏览器中出现“Page Expired”,我想是因为删除不干净.我的设置基本上是一个标签,它通过计时器开始改变,还有两个链接:“go”和
|
我在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. 任何帮助非常感谢.谢谢. 解决方法我通过使用stop()方法解决了这个问题,而不是试图完全删除行为.我确实希望在停止它之后在某个时刻完全删除它(因为我的解决方案涉及每次我点击“go”时新建一个行为,我想继续停止并开始而不会产生一百万行为)所以我得到了维护一些稍后往返的行为清单. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – JBrowserDriver初始化需要一分多钟
- javafx8 TableView Multiselection将所选项之一返回为null
- Java中的接口和抽象类用法实例详解
- java – Spring Mongo如何从Aggregation获取列表Aggregatio
- java – 为什么JUnit Testing异常总是失败?
- java集合框架详解
- java实现YH家算法
- java – Spring – 如果服务返回409 HTTP代码,则重试请求
- java读取resource目录下文件的方法示例
- java – 为什么列表listOfArrays = Arrays.asList(new Inte
