JSF Phase Listener重定向表单不是iframe

时间:2014-01-08 21:24:17

标签: java javascript jsf redirect iframe

我有这个PhaseListener,用于在恢复视图后检查用户是否仍然登录。如果会话已过期,那么我希望整个表单重定向到/login.jsf页面,而只是重定向iframe。

基本上,这是我在afterPhase()方法中的代码:

if (isWebUserLogonOk(session)) {
  NavigationHandler nh = faces.getApplication.getNavigationHandler();
  nh.handleNavigation(faces, null, "loggedoff");
}

注销是一个导航案例,可以将您带到login.jsp页面。

重定向按预期完成,但在这种特殊情况下,我希望它可以用于整个表单,而不是iframe(JSF新手在这里说话)。

1 个答案:

答案 0 :(得分:1)

如果您不想拥有iFrame中显示的网页(例如登录页面),则javascript framekiller应解决此问题。

将以下代码添加到您的登录页面head中,然后重试:

<script type="text/javascript">
  if(top != self) top.location.replace(location);
</script>

它可以轻松地将当前页面重新加载为首页。

希望它有所帮助...