【问题标题】:jsf navigation questionjsf导航问题
【发布时间】:2011-06-01 20:44:44
【问题描述】:

我有一个带有“查看用户”页面的 JSF2 项目,该页面从会话 bean 中读取当前选定的用户; userHandler.selectedUser。

该页面旨在通过应用中的链接导航来访问。

但是,如果用户试图通过这个 URL 直接点击“查看用户”页面...

http://localhost:8080/webapp/userView.jsf

...他们看到的页面上没有数据(因为 userHandler 中没有选定的用户)。

我想我想做的是将用户重定向到应用程序的主页,如果他们试图直接点击它。什么是处理这个问题的简单而优雅的方法?

谢谢, 抢

【问题讨论】:

    标签: jsf


    【解决方案1】:

    您希望挂钩preRenderView 事件,然后在这种情况下发送重定向。

    <f:metadata>
        <f:event type="preRenderView" listener="#{bean.preRenderView}" />
    </f:metadata>
    

    public void preRenderView() throws IOException {
        if (userHandler.getSelectedUser() == null) {
            FacesContext.getCurrentInstance().getExternalContext().redirect("home.jsf");
        }
    }
    

    【讨论】:

      【解决方案2】:

      从一开始就避免此问题的一种方法是将您不希望通过 URL 直接访问的页面放入项目的 WEB-INF 文件夹中。 这样,您的网页就无法通过 URL 直接访问。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      相关资源
      最近更新 更多