2010-03-11 3 views
0

Wicket 패널에서 나는 ModalWindow 팝업 화면을 보여주는 showAttentiePopup (AjaxRequestTarget)이라는 메소드를 구현했습니다. 이 메서드는 동일한 Panel에서 호출 할 때 제대로 작동합니다. 그러나 나는 다음과 같은 오류와 충돌 다른 패널에서 메서드를 호출 할 때 :Wicket : ModalWindow (팝업)을 여는 때 크래시

java.lang.IllegalStateException: No Page found for component [MarkupContainer [Component id = createAttentie]] 
at org.apache.wicket.Component.getPage(Component.java:1665) 
at org.apache.wicket.RequestCycle.urlFor(RequestCycle.java:851) 
at org.apache.wicket.Component.urlFor(Component.java:3170) 
at org.apache.wicket.behavior.AbstractAjaxBehavior.getCallbackUrl(AbstractAjaxBehavior.java:123) 
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.getCallbackScript(AbstractDefaultAjaxBehavior.java:116) 
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.getCallbackScript(AbstractDefaultAjaxBehavior.java:104) 
at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow$CloseButtonBehavior.getCallbackScript(ModalWindow.java:876) 
at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.getWindowOpenJavascript(ModalWindow.java:1005) 
at org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.show(ModalWindow.java:286) 
at nl.topicuszorg.fks.web.client.dossier.overzichten.documenten.AttentieOverzichtPanel.showAttentiePopup(AttentieOverzichtPanel.java:171) 
at nl.topicuszorg.fks.web.client.dossier.overzichten.documenten.EditFileDocumentPanel$2.onSubmit(EditFileDocumentPanel.java:195) 
at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:94) 
at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:128) 
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163) 
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297) 

사람 문제가 될 일을 생각을?

방법의 showAttentiePopup :

public void showAttentiePopup(AjaxRequestTarget target) { 
     Component content = new EditAttentiePanel(createAttentie.getContentId(), new Attentie(), EditFunctie.AANMAKEN) { 

       /** */ 
       private static final long serialVersionUID = 1L; 

       @Override 
       protected void annuleren(AjaxRequestTarget target) { 

         FKSModalWindow.closeCurrentWindow(target); 
       } 

       @Override 
       protected void opslaan(AjaxRequestTarget target, Attentie attentie) { 
         //Inhoud even weggelaten 
       } 

     }; 

     createAttentie.setOutputMarkupId(true); 
     createAttentie.setInitialWidth(900); 
     createAttentie.setInitialHeight(450); 
     createAttentie.setTitle("Nieuwe Attentie Aanmaken"); 
     createAttentie.setContent(content); 
     createAttentie.show(target);  
    } 

인사말, 릭

답변

0

귀하의 스택 트레이스는 모달 윈도 createAttentie이 코드가 렌더링하려고하는 시점에서 페이지의 일부가 아닌 나타냅니다.

페이지 구성 논리 및 구성 요소 구조를 추적하고 모든 것이 올바르게 연결되어 있는지 확인하십시오.