2

我是 JSF 初学者并尝试使用 Spring 和 Hibernate 构建一个小型 JSF2 Web 应用程序。我选择的服务器是 JBOSS 7.1 AS。

我在尝试使用前缀 URL 模式映射 servlet 时遇到了一个奇怪的错误。这是 web.xml 中声明 Servlet 的部分:

<servlet>
    <servlet-name>FacesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/webapplication/*</url-pattern>
</servlet-mapping>

如果我现在将浏览器定向到“localhost:8080/myapp/webapplication/index.xhtml”,我会收到 Mojarra/Facelets 生成的错误:“/index.xhtml Not Found in ExternalContext as a Resource”。如果我改为将 URL 模式配置为“* .xhtml”,一切正常。

我根本不知道为什么前缀模式不起作用:/

问候

4

1 回答 1

1

我找到了解决方案:D!

当使用前缀模式时,我认为我必须将我的 xhtml 文件放在该名称的文件夹中。例如,我使用了模式“/webapplication/*”,所以我创建了一个文件夹“webapplication”并将我的 web 文件放在那里。现在,当我的浏览器指向“{host}/myapp/webapplication/index.xhtml”时,我希望服务器搜索“{root}/webapplication/index.xhtml”中的文件。相反,Servlet 将 URL 解析为“{host}/myapp/index.xhtml”。因为文件没有放在那里,我得到一个 FileNotFound-Error。

我还学会了不要给我的资源文件夹和我的 url-patterns 同名。

于 2012-08-21T13:29:56.737 回答