Wicket SetRecreatedMountedPageSafterExpiry将URL更改为servlet
我们最近将应用程序从Wicket 1.5.8升级到6.22.0。当会话过期后发生操作时,我试图将所有页面设置为重定向到特定页面(SessionExpiredPage)Wicket SetRecreatedMountedPageSafterExpiry将URL更改为servlet,wicket,wicket-6,Wicket,Wicket 6,我们最近将应用程序从Wicket 1.5.8升级到6.22.0。当会话过期后发生操作时,我试图将所有页面设置为重定向到特定页面(SessionExpiredPage) public class WicketApplication<HttpsRequestCycleProcessor> extends WebApplication { // other methods omitted public void init() { super.ini
public class WicketApplication<HttpsRequestCycleProcessor> extends WebApplication
{
// other methods omitted
public void init()
{
super.init();
getApplicationSettings().setPageExpiredErrorPage(SessionExpiredPage.class);
getApplicationSettings().setAccessDeniedPage(SessionExpiredPage.class);
getPageSettings().setRecreateMountedPagesAfterExpiry(false);
// several other mounted links omitted
mount(new MountedMapper("landingpage", LandingPage.class, new UrlPathPageParametersEncoder()));
// add your configuration here
getComponentInstantiationListeners().add(new SpringComponentInjector(this));
}
}
url已从有效的更改为
,但失败了
有人能解释一下如何解决这个问题吗?看来Wicket页面和Servlet的路径有不同的深度。
使用
org.apache.wicket.request.UrlUtils#rewriteToContextRelative(relativeUrl,cycle)
使Servlet的url相对于上下文根。onSubmit()下的最后一行被替换为:
String relativeUrl = UrlUtils.rewriteToContextRelative(redirectUrl, getRequestCycle());
getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(relativeUrl));
这更正了servlet的URL。SubscriptionPage的装载路径是什么?SubCartTempServlet的servlet映射是什么?
mount(新MountedMapper(“subscriptionpage”,subscriptionpage.class,新UrlPathPageParametersEncoder())代码>`SubsCartTempServlet com.lingualcassica.parser.SubsCartTempServlet 2 SubsCartTempServlet/SubsCartTempServlet/*`
String relativeUrl = UrlUtils.rewriteToContextRelative(redirectUrl, getRequestCycle());
getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(relativeUrl));