JSF和Filter重定向生成空白页面

时间:2011-03-21 08:45:46

标签: java jsf servlet-filters

这让我感到疯狂,有没有什么好方法可以从Filter重定向JSF页面? 这是我在doFilter()

中的代码
       try {

            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse res = (HttpServletResponse) response;
            LoginAgent loginAgent = (LoginAgent) req.getSession().getAttribute("login");

            if (loginAgent == null || !loginAgent.isLoggedIn()) {
                res.sendRedirect("requireslogin.xhtml");
            }
            else {
                chain.doFilter(request, response);
            }

我得到的只是一个空白页面。我尝试了其他方式,但没有一个工作,我没有遇到一个很好的例子重定向到另一个JSF页面,而不涉及太多的工作。

这有什么解决方法吗?基本上,过滤器用于禁止匿名用户访问页面。

1 个答案:

答案 0 :(得分:1)

仅为了您的信息,如果您遇到与我相同的问题,并想要另一种方法,您可以使用phaseListener来检查用户登录状态。

我仍然坚持使用过滤器,但我认为我最好选择这种方式(PhaseListener),至少对我来说更容易理解,更优雅(至少在我眼里,哈哈)。

你可以按照这个家伙博客的指南进行操作。太棒了。

http://gurolerdogan.blogspot.com/2010/04/controlling-login-by-phaselistener-in.html

虽然有些人可能会遇到问题,因为当用户未登录时,每个页面都应重新路由到登录页面,这可以通过在faces-config中重新定义导航规则轻松解决。

感谢任何与我处理JSF的小伙伴关系!特别是你,BalusC:)