我们基于wicket的网站已将主页安装为/index.html
。目前,当用户在浏览器中输入www.ourdomain.com
时,wicket会自动将302重定向发送到www.ourdomain.com/index.html
。我想出于某些原因避免这种重定向。
我尝试了ServletFilter
实施
...
request.getRequestDispatcher("/index.html").forward(request, response);
...
但这只引起了404响应。我还尝试修改StringBuffer
后跟request.getRequestURL()
返回的chain.doFilter(request, response);
,但也没有成功。
还有什么我可以尝试让wicket返回主页(没有安装在不同路径上)的no-path-URL?
答案 0 :(得分: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);
}
在wicket 6中使用:
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
答案 1 :(得分: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{}
}