我有这个结构:
在我的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>
谢谢!
答案 0 :(得分:0)
使用servlet映射和前缀映射可能会使servlet混乱。从规范:
JSF实现必须支持定义a的Web应用程序 将任何有效的url-patternt映射到FacesServlet。可以使用前缀或扩展名映射
您应该坚持使用扩展程序映射,或者在faces-config导航规则中包含 faces