이전 버전의 wicket에서 wicket 8로 응용 프로그램을 마이그레이션하고 있습니다. 일부 페이지는 정상적으로 작동합니다 (로그인과 같은 간단한 페이지). 이 페이지는 확장 메커니즘을 사용하지 않습니다. 메커니즘이있는 페이지에 액세스 할 때 작동하지 않습니다. 이것이 버그인지는 모르겠지만 모든 것을 시도했지만 해결책을 찾지 못했습니다. wicket을 사용 중입니다. 8.0.0-M5 (안정적인 릴리스가 아닙니다). 누구도 같은 문제가 있었나요? WerklijstPanelXXX.htmlWicket 8 - 확장 메커니즘이 작동하지 않습니다.
<wicket:head xmlns:wicket>
</wicket:head>
<wicket:panel xmlns:wicket>
<div wicket:id="filter">
<div wicket:id="label"></div>
</div>
</wicket:panel>
WerklijstPageXXX.java
public class WerklijstPageXXX extends BasePage {
private WerklijstPanelXXX werklijstPanel;
public WerklijstPageXXX() {
werklijstPanel = new WerklijstPanelXXX("panelXXX"){};
add(werklijstPanel);
}
@Override
public Panel getContextPanel(String id)
{
return werklijstPanel.getWerklijstFilterPanel();
}
WerklijstPageXXX.html
<html xmlns:wicket>
<body>
<wicket:extend>
<div wicket:id="panelXXX"></div>
</wicket:extend>
</body>
: 여기 내 코드입니다 WerklijstPanelXXX.java
public abstract class WerklijstPanelXXX extends Panel {
private static final Logger LOG = LoggerFactory
.getLogger(WerklijstPanelXXX.class);
private Panel filterPanel;
public WerklijstPanelXXX(String id) {
super(id);
WebMarkupContainer upperPanel = new WebMarkupContainer("filter");
filterPanel = new Panel("filterPanel") {
};
add(upperPanel);
upperPanel.add(new Label("label"));
}
public Panel getWerklijstFilterPanel() {
return filterPanel;
}
편집 : BasePage.html (의 일부)
<div id="body" class="body">
<div id="aside" class="aside">
<div wicket:id="contextPanel"></div>
</div>
<div id="content" class="content">
<div class="padding">
<wicket:child></wicket:child>
</div>
</div>
</div>
BasePage.java
@Override
protected void onInitialize() {
super.onInitialize();
add(getContextPanel("contextPanel"));
addTabMenu();
addMenu();
addPatientBar();
}
오류 :
근본 원인 :
org.apache.wicket.WicketRuntimeException : 아래의 구성 요소가 렌더링에 실패했습니다. 가능한 이유는 다음과 같을 수 있습니다. 1) 코드에서 구성 요소를 추가했지만 마크 업에서이를 참조하지 않았습니다. 따라서 구성 요소가 렌더링되지 않습니다. 2) 구성 요소가 상위 컨테이너에 추가 된 경우 하위 컨테이너에 대한 마크 업에는이 마크 업이 포함됩니다.
- [WerklijstPanelXXX [부품 번호 = panelXXX 페이지 = nl.philips.raris.web.werklijst.WerklijstPageXXX 경로 = panelXXX, TYPE = nl.philips.raris.web.werklijst.WerklijstPanelXXX 사실에서 IsVisible =
- [WebMarkupContainer [구성 요소 ID = 필터, 페이지 = nl.philips.raris.web.werklijst.WerklijstPageXXX, 경로 = panelXXX : 필터, 유형 =], 자식 = [WebMarkupContainer [구성 요소 ID = 필터]]] org.apache.wicket.markup.html.WebMarkupContainer, isVisible = true, isVersioned = true], children = [Component id = label]]
- [구성 요소 id = label, page = nl.philips.raris.web.werklijst .WerklijstPageXXX, path = panelXXX : filter : label, type = org.a
[패널 [구성 요소 id = filterPanel, 페이지 = nl.philips.raris.web.werklijst.WerklijstPageXXX, 경로 = filterPanel, pache.wicket.markup.html.basic.Label, isVisible = true, isVersioned = 참 = org.apache.wicket.markup.html.panel.Panel, 입력에서 IsVisible = 참] 조직에서 org.apache.wicket.Page.checkRendering (Page.java:662) 에서
. apache.wicket.Page.onAfterRender (Page.java:805) org.apache.wicket.Component.afterRender에서 org.apache.wicket.markup.html.WebPage.onAfterRender (WebPage.java:209) 에서 (구성 요소. java : 919) at org.apache.wicket.Component.render (Component.java:2335) at org.apache.wicket.Page.renderPage (Page.java:987) at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage (WebPageRenderer.java:124) at org.apache.wicket.request.handler.render.WebPageRenderer.respond (WebPageRenderer.java:236) at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond (RenderPageRequestHandler. 자바 : org.apache.wicket.request.RequestHandlerExecutor.execute (RequestHandlerExecutor.java:65) 에서 org.apache.wicket.request.cycle.RequestCycle $ HandlerExecutor.respond (RequestCycle.java:912) 175) 에서 org.apache.wicket.request.cycle.RequestCycle.execute (RequestCycle.java:283) at org.apache.wicket.request.cycle.RequestCycle.processRequest (RequestCyc le.java:253) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach (RequestCycle.java:221) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle (WicketFilter.java:262) at org.apache.wicket.protocol.http.WicketFilter.processRequest (WicketFilter.java:204) at org.apache.wicket.protocol.http.WicketServlet.doGet (WicketServlet.java:137) at javax.servlet. (ServletHolder.java:808) 에서 http.HttpServlet.service at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1669) at org.apache.shiro.web.servlet.AbstractShiroFilter.exe org.apache.shiro.web.servlet.AbstractShiroFilter $ 1.call (AbstractShiroFilter.java:365) 에서 cuteChain (AbstractShiroFilter.java:449) org.apache.shiro.subject.support.SubjectCallable.doCall (SubjectCallable.java) : 90) at org.apache.shiro.subject.support.SubjectCallable.call (SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute (DelegatingSubject.java:387) at org org.springframework.web.filter에서 .apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal (AbstractShiroFilter.java:362) org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:125)에서 .DelegatingFilterProxy.invokeDelegate (DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:262) at org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1652) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal (OpenSessionInViewFilter.java:151) org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter에서 org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107에서) ) (ServletHandler.java:1652)
"작동하지 않음"이란 정확히 무엇을 의미합니까? 기본 페이지 만 표시되거나 예외가 발생합니까? 또한 BasePage에 대해 코드 + HTML을 공유하면 아마 좋을 것입니다. BasePage에 올바른 태그가 없으면 태그가 작동하지 않습니다. –
죄송합니다. 오류 및 기본 페이지 항목을 추가하는 것을 잊어 버렸습니다. – fselvatici