0

我正在使用 JSF 为项目创建网站,并使用子目录来管理哪些用户能够访问哪些页面。

我的 WAR 项目组织如下:

+Web Pages
    +User
        movies.xhtml
    +WEB-INF
        //beans, faces-config, glassfish-web, and web.xml here
    +images
    +resources
        +css
            header.css
    +templates
        header.xhtml
    index.xhtml
    //other views

我的导航规则如下

<navigation-rule> 
<from-view-id>/login.xhtml</from-view-id> 
<navigation-case> 
  <from-outcome>movies</from-outcome> 
  <to-view-id>/User/movies.xhtml</to-view-id> 
</navigation-case>
<navigation-case> 
<from-view-id>*</from-view-id>  
  <from-outcome>index</from-outcome>
  <to-view-id>/index.xhtml</to-view-id>
  <from-outcome>create</from-outcome>
  <to-view-id>/create.xhtml</to-view-id>
  <from-outcome>help</from-outcome>
  <to-view-id>/help.xhtml</to-view-id>
  <from-outcome>login</from-outcome>
  <to-view-id>/login.xhtml</to-view-id>
  <from-outcome>search</from-outcome>
  <to-view-id>/search.xhtml</to-view-id>
</navigation-case>

我的 web.xml servlet 映射如下:

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/vd/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>vd/index.xhtml</welcome-file>
</welcome-file-list>

现在,我对将我带到 /User/movies.xhtml 的导航规则没有任何问题。但是,一旦我进入 /User/movies.xhtml,JSF 就找不到我的任何页面(IE.index.xhtml)。但是,它仍然可以找到movies.xhtml 使用的模板。

为什么 JSF 找不到其他视图在哪里?我应该如何更改我的导航规则以便它可以找到它们?

我在 Glassfish v3.1.2 上运行。

4

1 回答 1

0

我弄清楚了问题所在。我停止使用导航案例并使用 JSF 2 的隐式导航,一切都按原样工作。

于 2013-04-15T04:56:48.490 回答