我有一个基于Apache Wicket的Web应用程序。我对网页的onBeforRender()方法的使用有疑问。我需要使用此方法拦截页面的创建,并将用户重定向到另一个页面。如果我在onBeforeRender中使用setResponsePage,则该页面将被渲染。 我如何实现我想要的行为?
答案 0 :(得分:1)
我认为这应该有效:
throw new RestartResponseAtInterceptPageException(SomePage.class);
因为它是一个例外,它应该阻止执行任何其他代码(=渲染)。
我不确定你为什么要重定向。我的猜测是它是一个授权主题。然后,您可能想查看IAuthorizationStrategy。它在官方的Wicket文档中有所描述。他们有很好的文档,有很多最佳实践和例子。
答案 1 :(得分:0)
您使用哪个org.apache.wicket.settings.RequestCycleSettings.RenderStrategy
?我相信只有org.apache.wicket.settings.RequestCycleSettings.RenderStrategy#ONE_PASS_RENDER
才能解决您的问题。
尝试改为使用#onInitialize()
或#onConfigure()
。