java - JSF Phase Listener 重定向表单不是 iframe

标签 java javascript jsf redirect iframe

我有这个 PhaseListener,它检查用户在恢复 View 后是否仍然登录。如果 session 已过期,那么我希望整个表单重定向到/login.jsf 页面,但它只重定向其中的 iframe。

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

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

loggedoff 是一个带你到 login.jsp 页面的导航案例。

重定向按预期完成,但在这种特殊情况下,我希望它针对整个表单而不是 iframe 完成(JSF 菜鸟在这里说话)。

最佳答案

如果您不想在 iFrame 中显示一个页面(例如登录页面),一个 javascript framekiller应该解决这个问题。

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

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

它很容易将当前页面重新加载为首页。

希望对你有帮助

关于java - JSF Phase Listener 重定向表单不是 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006840/

相关文章:

java - 从 Java 应用程序即时打开 PDF 文件

java - 如何实现通用方法

javascript sort函数在不应该的时候进行排序

java - 在 POJO 中使用 EJB 注入(inject)

java - 创建用于将所有视频设置为相同大小并添加水印的 FFMPEG 命令?

java.lang.IllegalStateException/java.lang.ClassDefNotFoundError 添加外部 Jar 到 android 项目

javascript - JavaScript 中的 "=>"(由等于和大于组成的箭头)是什么意思?

javascript - 乘以嵌套数组长度并返回单个值

java.io.NotSerializedException : org. postgresql.jdbc4.Jdbc4Connection

css - 列宽在 p :column primefaces 中固定时出错