0
링크 1을 클릭 한 다음 응답을 받기 전에 동일한 페이지에서 링크 2를 클릭하면 Wicket에서 "페이지 만료 됨"오류가 발생합니다. Wicket은 이러한 동시 처리를 할 수 있습니까?Wicket은 같은 세션 내에서 동일한 페이지의 두 요청을 동시에 처리 할 수 있습니까?
Wicket이 세션을 잃게되는 아이디어 (바람둥이에 상주하는 것 같습니다)?
링크 1을 클릭 한 다음 응답을 받기 전에 동일한 페이지에서 링크 2를 클릭하면 Wicket에서 "페이지 만료 됨"오류가 발생합니다. Wicket은 이러한 동시 처리를 할 수 있습니까?Wicket은 같은 세션 내에서 동일한 페이지의 두 요청을 동시에 처리 할 수 있습니까?
Wicket이 세션을 잃게되는 아이디어 (바람둥이에 상주하는 것 같습니다)?
직접 질문에 답하십시오. Wicket은 첫 번째 링크가 아직 처리 중이지만 두 번째 링크 클릭을 처리하는 데 문제가없는 것처럼 보입니다. 나는 다음 예제로 시도했다.
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
public class ConcurrentClickPage extends WebPage {
public ConcurrentClickPage() {
final IModel<String> model = new Model<String>("initial");
Label status = new Label("status", model);
add(status);
add(new Link("link1"){
@Override
public void onClick() {
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
Logger.getLogger(ConcurrentClickPage.class.getName()).log(Level.SEVERE, null, ex);
}
model.setObject("link 1 clicked");
}
});
add(new Link("link2"){
@Override
public void onClick() {
model.setObject("link 2 clicked");
}
});
}
}
그리고 해당 HTML 페이지 :
<html>
<body>
<span wicket:id="status">text</span>
<p>
<a href="#" wicket:id="link1">Link 1 (deferred processing)</a><br/>
<a href="#" wicket:id="link2">Link 2</a>
</p>
</body>
</html>
내가 링크 1을 클릭하고 링크 1의 응답을 기다리는 동안 링크 2를 클릭, 모든 것이 잘 내가 더 "페이지가 만료 얻을 "오류.