JSF2无法找到具有from-view-id的匹配导航案例,结果为“Logout”

时间:2014-07-05 05:44:55

标签: jsf jsf-2

我正在使用以下代码进行注销

public String logout() throws ServletException {
        cleanSession();
        FacesContext.getCurrentInstance().getExternalContext()
                .invalidateSession();
        HttpServletRequest request = (HttpServletRequest) FacesContext
                .getCurrentInstance().getExternalContext().getRequest();
        FacesContext.getCurrentInstance().getExternalContext()
                .invalidateSession();


            return "Logout";

    }
登录文件夹中的

Logout.xhtml 页面,但我最终还是

  

无法找到与from-view-id匹配的导航案例   ' /core/dashboard.xhtml' for action'#{loginBean.logout}'结果   '退出'

我尝试在 Stackoverflow 中提供最大解决方案,但无法获得解决方案..我在下面的代码中尝试了

public String logout() throws ServletException {
        cleanSession();
        FacesContext.getCurrentInstance().getExternalContext()
                .invalidateSession();
        HttpServletRequest request = (HttpServletRequest) FacesContext
                .getCurrentInstance().getExternalContext().getRequest();
        FacesContext.getCurrentInstance().getExternalContext()
                .invalidateSession();

        try {
            String action = request.getContextPath()
                    + "/login/Logout.xhtml";
            return action;
        } catch (Exception e) {
            LOG.error("Exception in forwarding at Logout", e);
        }
        return null;
    }

但同样的问题..任何人都可以告诉我这是什么问题吗?

我稍作修改并添加了

<p:commandLink ajax="false" rendered="#{loginBean.loginStatus}"
                    value="Logout" actionListener="#{loginBean.logout}" action="Logout">

                </p:commandLink>

以前就像这样

<p:commandLink ajax="false" rendered="#{loginBean.loginStatus}"
                    value="Logout" action="#{loginBean.logout}"
                     >
                </p:commandLink>

1 个答案:

答案 0 :(得分:0)

您正尝试从 / core / 导航到 / login / 这是另一个目录。

JSF隐式导航允许您导航到同一文件夹或任何父文件夹中的页面。

请对这种情况使用faces-config.xml导航规则。