0

我们基于检票口的网站已将主页安装为/index.html. 目前,当用户www.ourdomain.com在浏览器中输入时,wicket 会自动发送 302 重定向到www.ourdomain.com/index.html. 由于某些原因,我想避免这种重定向。

我已经尝试了一个ServletFilter实现

...
request.getRequestDispatcher("/index.html").forward(request, response);
...

但这仅导致 404 响应。我也尝试过修改StringBuffer返回的 by request.getRequestURL()chain.doFilter(request, response);但也没有成功。

我还能尝试让 wicket 返回无路径 URL 的主页(不安装在不同的路径)吗?

4

2 回答 2

5

把它放在你init()的应用程序类的方法中

    @Override
public void init() {
    super.init();
    getRequestCycleSettings().setRenderStrategy(IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
}

看看我的默认 init() 方法

    @Override
public void init() {
    super.init();
    getResourceSettings().setResourcePollFrequency(isTest() ? ONE_SECOND : null);
    getResourceSettings().setDefaultCacheDuration(isTest() ? MAXIMUM : null);
    getMarkupSettings().setCompressWhitespace(true);
    getMarkupSettings().setStripComments(true);
    getMarkupSettings().setStripWicketTags(true);
    getRequestCycleSettings().setRenderStrategy(IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
}

在检票口 6 中使用:

getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
于 2013-04-15T11:42:30.507 回答
2

您可以创建挂载到 index.html 的类的后代类并在 Application#getHomePage 中使用它

这是一个例子:

   public class MyApplication extends WebApplication {

        @Override
        protected void init() {
            super.init();
            ...
            mountPage("index.html", IndexPage.class);
            ...
        }

        @Override
        public Class<? extends Page> getHomePage() {
           return HomePage.class;
        }

        public static class HomePage extends IndexPage{}

    }
于 2013-04-14T18:15:28.553 回答