页面加载时的 JSF 重定向

2024-01-16

简短的问题:是否可以进行重定向,例如当用户未登录时,当呈现页面时?


为此你should http://java.sun.com/products/servlet/Filters.html use a Filter http://java.sun.com/javaee/5/docs/api/javax/servlet/Filter.html.

E.g.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { 
    if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
        ((HttpServletResponse) response).sendRedirect("error.jsf"); // Not logged in, so redirect to error page.
    } else {
        chain.doFilter(request, response); // Logged in, so just continue.
    }
}

这里我假设User正如您通常所期望的那样,已将其放置在会话范围内。它可以是一个会话范围的 JSF 托管 bean,名称为user.

导航规则不适用,因为在正常情况下无法执行“bean 操作”GET要求。在即将构造托管 bean 时执行重定向也行不通,因为当在正常情况下构造托管 bean 时,GET请求,响应已经开始呈现,这是一个点没有回报(它只会产生IllegalStateException: response already committed)。 PhaseListener 既麻烦又令人难以承受,因为您实际上不需要侦听任何 JSF 阶段。您只想监听“普通”HTTP 请求以及会话范围内某个对象的存在。为此,过滤器是完美的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

页面加载时的 JSF 重定向 的相关文章

随机推荐

  • python qt:自动调整主窗口大小以适应内容

    我有一个主窗口 其中包含一个主小部件 并为其设置了垂直布局 在布局中添加了一个QTableWidget仅 暂时 当我启动应用程序并在 main window 上调用 show 时 只有部分内容QTableWidget显示 我可以手动扩展窗口
  • 制作一行高的空div

    是否可以创建一个规则来生成以下 HTML div style width 100 div 只使用 CSS 的一行高度 或者我需要把 nbsp 作为内容 一些可能性 Set height https developer mozilla org
  • 为什么C#编译器会产生方法调用来调用IL中的BaseClass方法

    假设我们有以下 C 示例代码 class BaseClass public virtual void HelloWorld Console WriteLine Hello Tarik class DerivedClass BaseClass
  • 使用 swift 进行部分卷页动画

    我正在寻找一种方法来指示 uiview 上的 pagecurl 动画 以向用户提示他可以滚动某些页面 它应该是某种部分卷页 问题是我不知道该怎么做 我找到了一些教程 但仅适用于 Objective C 我不知道如何将其转移到 swift 中
  • NestJS:如何在自定义验证器中访问 Body 和 Param?

    我有一个场景 我需要来自两个值的值param and body执行自定义验证 例如 我有一条路线 photoId tag为照片添加标签 然而 在向照片添加标签之前 它必须验证是否已经存在与照片同名的标签 我的控制器中有以下路线 Post p
  • 了解执行 Google 数据存储区查询时出现的“CancellationException:任务已取消”错误

    我正在使用 Google App Engine v 1 9 48 在一些数据存储查询期间 我随机收到 CancellationException 任务已取消 错误 而且我不太确定到底是什么导致了这个错误 从other https stack
  • Dapper 和 SQL 注入

    Dapper 如何帮助防止 SQL 注入 我正在测试不同的 DAL 技术 必须选择一种来确保我们网站的安全 我倾向于 Dapper http code google com p dapper dot net 但需要一些帮助来了解安全性 Da
  • 替换 javascript 中的 JSON 键

    假设我有一个 JSON 对象 例如 var myjson com mycompany top Element com mycompany top count 10 com mycompany top size 0 我想用冒号替换键中的点 句
  • F3 更改 css 文件的相对 URi

    我是一个尝试 F3 的新手 我的示例应用程序基本上可以工作 但是对 css 文件的引用发生了更改并导致找不到 它看起来像 htaccess 问题 但我似乎无法修复它 我的 css 文件指定为 我的 htaccess 文件看起来像 Rewri
  • 为什么 UITextView 在调整大小后会在错误的框架中绘制文本?

    我陷入了某种魔力 当我尝试更改 UITextView 框架 在本例中使用 UISlider 时 文本会在比框架更小的其他区域中绘制 多次调整大小 有趣的是 如果我们在尝试使框架变大时滑动得足够快 文本就会绘制在非常正确的区域中 有人可以解释
  • 动态大小类型总是在堆上吗?

    我对 Rust 的学习让我了解了动态大小类型 DST 并且我知道这些类型的大小在编译时无法得知 例如 str 我现在的问题是 我说 DST 永远不能存在于堆栈上 它们只存在于堆上 这样说对吗 另外 另一方面 说大小类型可以存在于堆栈中是否正
  • GridView 排序仅有效一次

    我有一个网格 它仅按升序排序一次 然后什么也没有发生 aspx文件代码
  • 如何在 Swift 4 中创建一定大小的数组?

    如何制作一个包含 1000 个浮点数的简单数组 我已经尝试过这个 var computeArray Array
  • 如何从node.js缓冲区获取int

    是代码 var time new Buffer 506BF1E3 hex time toString Pk 0x506BF1E3 1349251555 UNIX时间 如何获取 1349251555 表格time缓冲 这个也能达到目的 通过使
  • SQL Server:过滤 sp_who2 的输出

    在SQL Server下 有没有一种简单的方法来过滤sp who2的输出 例如 假设我只想显示某个数据库的行 你可以尝试类似的东西 DECLARE Table TABLE SPID INT Status VARCHAR MAX LOGIN
  • 如何检查使用哪个编译器来构建Python

    有没有办法知道使用哪个编译器来构建Python安装在特定的linux机器上 我尝试使用ldd on the Python动态库 1 但我无法理解它是否是用gcc或英特尔编译器 1 ldd libpython2 7 so 1 0 linux
  • Clang 在 c++98 模式下使用 std::stoi 编译代码

    我需要用 C 98 编译我的 cpp 而不是我的学校项目的 C 11 所以我用了 std c 98编译 CPPFLAGS Wall Werror Wextra std c 98 但我犯了一个错误并使用了C 11std stoi功能 i st
  • 如何让浮动div居中?

    我想将下面模型中出现的三个 div 居中 全部都有 float left 这可能吗 我不介意有包装器div Text align center 和 display inline block 不适用于我的代码 如果你想让它们居中 你就不能浮动
  • 发布时母版页出现“无法加载类型”错误

    本地查找一切正常 但是当我将 ASP NET 应用程序发布到远程服务器时 出现以下错误 Server Error in Application Parser Error Description An error occurred durin
  • 页面加载时的 JSF 重定向

    简短的问题 是否可以进行重定向 例如当用户未登录时 当呈现页面时 为此你should http java sun com products servlet Filters html use a Filter http java sun co