Reputation: 6816
I have one page in my application which needs to preserve the original URL without redirecting. The reason is because there is a hashmark which has important information after it, and this is lost during a redirect for Safari on OS X.
I know I can do this to disable all redirect for my entire application:
getRequestCycleSettings().setRenderStrategy( IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER );
Is there some way to preserve the regular behavior with buffered rendering, but use the one pass rendering for a specific page?
Upvotes: 2
Views: 702
Reputation: 17503
Approach 1) requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new PageProvider(page), RedirectPolicy.NEVER))
Use it instead of setResponsePage(Page/Class)
Approach 2) Provide your own IPageRenderer
and never redirect for this specific page
See Application#setPageRendererProvider
. Extend from WebPageRenderer
to save you some troubles.
Example code which disables redirect for a NoRedirectTest
page:
setPageRendererProvider( new IPageRendererProvider() {
public IPageRenderer get( final RenderPageRequestHandler context ) {
return new WebPageRenderer( context ) {
@Override
protected boolean isOnePassRender() {
IRequestablePage whichPage = getRenderPageRequestHandler().getPage();
return whichPage instanceof NoRedirectTest || super.isOnePassRender();
}
};
}
} );
Upvotes: 2