2015-01-07 3 views
2

리디렉션하지 않고 원래 URL을 유지해야하는 애플리케이션에 한 페이지가 있습니다.Wicket 응용 프로그램의 특정 페이지에 대한 리디렉션을 비활성화하는 방법은 무엇입니까?

: 거기 후 중요한 정보가있는 해시 마크이며,이

가 나는 모든 내 전체 응용 프로그램에 대한 리디렉션하지 않으려면이 작업을 수행 할 수있어 OS X의 사파리에 대한 리디렉션 중에 손실되기 때문에 이유는

getRequestCycleSettings().setRenderStrategy(IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER); 

버퍼링 된 렌더링을 사용하여 일반적인 동작을 유지할 수있는 방법이 있지만 특정 페이지에 대해 한 번의 패스 렌더링을 사용합니까?

답변

2

접근 방법 1)requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new PageProvider(page), RedirectPolicy.NEVER))IPageRenderer 자신을 제공 setResponsePage(Page/Class)


접근법 2) 대신에 그것을 사용하고 Application#setPageRendererProvider를 참조하십시오이 특정 페이지 에 대한 리디렉션하지 않습니다. 몇 가지 문제를 줄이기 위해 WebPageRenderer에서 연장하십시오.

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(); 
      } 
     }; 
    } 
}); 
+0

이 외부 자바 스크립트에서 북마크 된 페이지가 내가 그 시나리오에서 당신의 제안을 사용할 수있을 것입니다, 리디렉션는 다음과 NoRedirectTest 페이지에 대한 리디렉션하지 않습니다

예제 코드? –

+0

즐겨 찾기 페이지의 경우 내 코드에서 어디로 이동합니까? 생성자에 속한 것처럼 보이지는 않습니다. 북마크 가능한 페이지이므로 액션 처리기에 배치하지 않습니다. –

+0

내 코드를 setResponsePage() 대신 사용하십시오. –