在onBeforeRender()里面的Wicket setResponsePage()

时间:2017-06-30 07:46:20

标签: java wicket

我有一个基于Apache Wicket的Web应用程序。我对网页的onBeforRender()方法的使用有疑问。我需要使用此方法拦截页面的创建,并将用户重定向到另一个页面。如果我在onBeforeRender中使用setResponsePage,则该页面将被渲染。 我如何实现我想要的行为?

2 个答案:

答案 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()