0
Wicket 6.x를 사용하고 있으며 조건에 따라 모든 요청을 리디렉션해야하는 기존의 "유지 관리중인 사이트"페이지를 구현하고 싶습니다.모든 요청을 Wicket의 특정 페이지로 리디렉션
그러나 중복 될 수 있으므로 모든 페이지에 리디렉션 확인을 쓰고 싶지 않습니다.
모든 요청을 가로 채고, 수표를 처리하고, 필요한 경우 리디렉션을 실행할 수있는 방법이 있습니까?
Wicket 6.x를 사용하고 있으며 조건에 따라 모든 요청을 리디렉션해야하는 기존의 "유지 관리중인 사이트"페이지를 구현하고 싶습니다.모든 요청을 Wicket의 특정 페이지로 리디렉션
그러나 중복 될 수 있으므로 모든 페이지에 리디렉션 확인을 쓰고 싶지 않습니다.
모든 요청을 가로 채고, 수표를 처리하고, 필요한 경우 리디렉션을 실행할 수있는 방법이 있습니까?
IRequestCycleListener # onBeginRequest() + requestCycle.setResponsePage(MaintainancePage.class)
을 사용할 수 있습니다.
MyApp # init()에 수신기를 등록하십시오 : getRequestCycleListeners().add(new MaintainanceListener())
. 그 자체로이 분명한 이유에 리디렉션 순환을 생성하지만,
public class MaintainanceListener extends AbstractRequestCycleListener {
@Override
public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
super.onRequestHandlerResolved(cycle, handler);
if (handler instanceof IPageRequestHandler && isMaintainanceMode()) {
final Class<? extends IRequestablePage> pageClass = ((IPageRequestHandler) handler).getPageClass();
if (MaintenancePage.class != pageClass) {
final MySession session = MySession.get();
if (session.getUser() != null) {
session.invalidateNow();
}
cycle.setResponsePage(MaintenancePage.class);
}
}
}
}
감사 :
여기에 가능한 솔루션입니다. 요청한 페이지가 유지 보수 일 경우 리다이렉트를 건너 뛰는 경로를 확인해야했습니다. 또한 홈페이지 (http://example.com/)를 요청할 때 내 사이트가 충돌합니다. 아직도 이해해야합니다. –
예제를 사용하여 답변을 업데이트했습니다. –