我们基于wicket的网站已经将主页挂载为/index.html。目前,当用户在浏览器中输入www.ourdomain.com时,wicket会自动向www.ourdomain.com/index.html发送302-redirect。出于某些原因,我想避免这种重定向。
我已经尝试了一个ServletFilter实现
...
request.getRequestDispatcher("/index.html").forward(request, response);
...但这只引起了404的响应。我还尝试修改由request.getRequestURL()返回的StringBuffer,然后是chain.doFilter(request, response);,但同样没有成功。
我还可以尝试让wicket返回no-path-URL的主页(不需要挂载到不同的路径)吗?
发布于 2013-04-15 02:15:29
您可以创建挂载到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-15 19:42:31
将其放入应用程序类的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);https://stackoverflow.com/questions/15996913
复制相似问题