层次结构中文件的路径

时间:2015-05-29 04:10:27

标签: jsf jsf-2 navigation

这是我的JSF应用程序的文件结构。

enter image description here

User目录是安全的&一个人需要进行身份验证才能看到user/success.xhtmluser/success.xhtml有一个用于注销的按钮。该按钮将表单提交给以下方法。

public String logout(){
        HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        session.invalidate();
        return "index";
    }

上述方法的最后一行是将用户重定向到index.xhtml,因为index.xhtmluser/success.xhtml不在同一目录中,因此我收到了以下错误消息。

  

无法找到与from-view-id匹配的导航案例   '/user/success.xhtml'用于行动'#{AccContrl.logout()}'与结果   '索引'

如何重定向到层次结构中出现的文件? 我试过了return "/../index";,但它没有用。

1 个答案:

答案 0 :(得分:0)

导航结果表示视图ID。如果它不以/开头,则相对于当前路径进行解释。如果它以/开头,那么它将相对于Web根进行解释。

所以,只需使用/index

return "/index";
对于具体问题

无关,您应该在此重定向,而不是导航。这不仅是因为你打算在POST之后导航离开时总是要执行重定向,还因为当前请求/响应中仍然存在无效会话,但在下一个请求/响应中不再存在。

return "/index?faces-redirect=true";

另见: