JSF h:链接导航规则404

时间:2014-10-10 00:57:16

标签: html xml jsf xhtml

我有这个结构:

xhtml structure

在我的header.xhtml中,我有一个像这样的h:链接:

<h:link value="Login page" outcome="account" />

faces-config.xml中的导航规则:

<navigation-rule>
    <from-view-id>/index.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>account</from-outcome>
        <to-view-id>/users/accountIndex</to-view-id>
    </navigation-case>
</navigation-rule>

但是当点击链接时我得到404,我不明白...尝试更改de web.xml和/或faces-config.xml但是我什么都没得到......

这是h:link:

的网址
http://localhost:8080/catastrophes-system-web/faces/users/accountIndex

这是我的web.xml用于映射:

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

谢谢!

1 个答案:

答案 0 :(得分:0)

使用servlet映射和前缀映射可能会使servlet混乱。从规范:

  

JSF实现必须支持定义a的Web应用程序   将任何有效的url-patternt映射到FacesServlet。可以使用前缀或扩展名映射

您应该坚持使用扩展程序映射,或者在faces-config导航规则中包含 faces