Wicket: Срив при отваряне на ModalWindow (изскачащ прозорец)

В Wicket панел внедрих метод, наречен showAttentiePopup(AjaxRequestTarget), който показва изскачащ екран на 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);      
   }

Поздрави, Рик


person Rick    schedule 11.03.2010    source източник


Отговори (1)


Вашето проследяване на стека показва, че ModalWindow createAttentie не е част от страница в момента, в който вашият код се опитва да я изобрази.

Проследете логиката на конструкцията на вашата страница и структурата на компонентите и се уверете, че всичко е свързано правилно.

person Don Roby    schedule 12.03.2010