2010-07-14 3 views

답변

2

직접 질문에 답하십시오. 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를 클릭, 모든 것이 잘 내가 더 "페이지가 만료 얻을 "오류.

관련 문제