2013-02-01 85 views
0

我想打开一个对话框使用新的对话框()如下 “register”&“registerpanel”这些是我添加到html页面的两个div作为wicket:id =“register”& wicket:id = “registerpanel”。Wicket面板(对话框)不起作用?

//注册面板

registerDialog = new Dialog("register"); 
registerDialog.add(new CustomerRegistrationPanel("registerpanel", registerDialog)); 
add(registerDialog); 

     // Register 
     lnkRegister = new AjaxFallbackLink<String>("lnkRegister") { 

      @Override 
      public void onClick(AjaxRequestTarget ajaxRequestTarget) { 
       // ajaxRequestTarget.add(registerPanel); 
       registerDialog.open(ajaxRequestTarget); 
       //setResponsePage(CustomerProfilePage.class); 
      } 

      @Override 
      public boolean isVisible() { 
       return !ZipSession.get().isValid(); 
      } 
     }; 
     add(lnkRegister); 

但我得到一个errror如,

根源:

org.apache.wicket.markup.MarkupNotFoundException: Failed to find markup file associated. CustomerRegistrationPanel: [CustomerRegistrationPanel [Component id = register]] 
at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.getMarkup(AssociatedMarkupSourcingStrategy.java:97) 
at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:448) 
at org.apache.wicket.Component.getMarkup(Component.java:737) 
at org.apache.wicket.Component.getMarkupTag(Component.java:1422) 
at org.apache.wicket.Component.getMarkupIdFromMarkup(Component.java:777) 
at org.apache.wicket.Component.getMarkupIdImpl(Component.java:1479) 
at org.apache.wicket.Component.getMarkupId(Component.java:1525) 
at org.apache.wicket.Component.getMarkupId(Component.java:1592) 
at com.visural.wicket.component.dialog.Dialog$1.getDivId(Dialog.java:68) 
at com.visural.wicket.component.dialog.Dialog$1.getJS(Dialog.java:59) 
at com.visural.wicket.component.dialog.Dialog$1.renderHead(Dialog.java:54) 
at org.apache.wicket.Component.renderHead(Component.java:2707) 
at org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy$1.component(ChildFirstHeaderRenderStrategy.java:82) 
at org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:96) 
at org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:87) 
at org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:87) 
at org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:87) 
at org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:51) 
at org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderChildHeaders(ChildFirstHeaderRenderStrategy.java:77) 
at org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderHeader(ChildFirstHeaderRenderStrategy.java:56) 
at org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:134) 
at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72) 
at org.apache.wicket.Component.internalRenderComponent(Component.java:2556) 
at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534) 
at org.apache.wicket.Component.internalRender(Component.java:2386) 
at org.apache.wicket.Component.render(Component.java:2314) 
at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432) 
at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596) 
at org.apache.wicket.Page.onRender(Page.java:907) 
at org.apache.wicket.markup.html.WebPage.onRender(WebPage.java:140) 
at org.apache.wicket.Component.internalRender(Component.java:2386) 
at org.apache.wicket.Component.render(Component.java:2314) 
at org.apache.wicket.Page.renderPage(Page.java:1035) 
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105) 
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:224) 
at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) 
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:784) 
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) 
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255) 
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212) 
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283) 
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) 
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 

PLZ帮我出这一点。提前致谢。

+0

粘贴CustomerRegistrationPanel.html;确保wicket:ids'正确嵌套。 – regis

回答

1

看起来你错过了文件CustomerRegistrationPanel。查找名为CustomerRegistrationPanel.html的文件,并查看它是否与.java文件位于同一目录中。

+0

嗨罗伯特感谢您的回复。但我有CustomerRegistrationPanel.html,它在我的java文件存储在同一个文件夹... –

+0

检查名称是否相等,因为异常说清楚:'MarkupNotFoundException:无法找到关联的标记文件。' –

+0

这两个文件的名称是相同的 –

10

即使您正确命名并放置了html文件,如果您在其中使用了错误的根元素,也可能会出现此错误。

例如,从<wicket:extend...>而不是<wicket:panel...>开始。

4

我在遇到这个问题时没有在这个问题中找到答案,所以我回来给我找到的解决方案。这是我对这个问题的检查清单。

  • 检查所有<便门:延长>,<便门:孩子>和<便门:面板>和标签都是正确的(由thoredge和尼基)
  • 检查,如果有在同一目录一个一个.html .java wicket文件(由Robert Niestroj撰写)
  • 检查是否没有任何设置使wicket在.html文件的不同位置搜索。
  • 检查路径中区分大小写的任何OS差异(请参阅评论:HaMMeReD)
  • 检查.html文件是否也在构建时复制到与.class文件相同的目录中。
  • 检查.html是否也添加到.war文件中。

希望这有助于也忘了人,在他们的Ant构建文件中的一行;)

+0

*检查路径是否区分大小写匹配 我发现Git似乎忽略大小写更改,而windows不区分大小写。因此,您可以在Windows中编写可以找到该文件的代码,但是在osx/linux中无法看到该文件。 – HaMMeReD

+0

谢谢,使用您的用户名将额外的支票添加到列表中。 – Martin

+0

我正在更换面板,并且在父项中缺少标签。这也导致了MarkupNotFoundException。 –