Java Wicket-在回调结果之后更新表单
当我试图用回调操作提供的结果更新表单时,我遇到了一个问题。这个问题是由Wicket单线程引起的,我不知道如何实现解决方案。 我需要更新的代码如下Java Wicket-在回调结果之后更新表单,java,wicket,Java,Wicket,当我试图用回调操作提供的结果更新表单时,我遇到了一个问题。这个问题是由Wicket单线程引起的,我不知道如何实现解决方案。 我需要更新的代码如下 provaButton = new AjaxLink("prova_btn"){ @Override public void onClick(AjaxRequestTarget art) { getChannelManagerAPI().getTok
provaButton = new AjaxLink("prova_btn"){
@Override
public void onClick(AjaxRequestTarget art) {
getChannelManagerAPI().getToken(new ChannelManagerCallbackWrapper() {
@Override
protected void onSuccess(Object object) {
Object[] response = null;
response = (Object[]) object;
for (Object obj : response) {
info("Result " + obj.toString());
}
}
@Override
protected void onFailure(Throwable throwable) {
info("Errore nella chiamata : "+ throwable.getMessage());
}
});
refreshFeedBackPanel(art);
}
};
add(provaButton);
似乎您正在进行异步调用。Wicket不支持挂起HTTP线程,因此您有以下选项:
java.util.concurrent.CountDownLatch
,在回调方法中使用wait()
。只有当您确定异步调用是快速的时,才使用这种方法org.apache.wicket.ajax.AbstractAjaxTimerBehavior
或其专门化org.apache.wicket.ajax.ajaxSelfUpdatengTimerBehavior
进行长轮询。其思想是启动异步调用,然后每N毫秒/秒Wicket将进行一次新的Ajax调用,以检查是否有响应并呈现它
非常感谢你。我试图改进你的一个建议。我需要另一个帮助。如何停止AjaxSelfUpdatengTimerBehavior?使用,嗯,
#停止(AjaxRequestTarget)
!看见