0

在浏览器 url 栏中,我的 jsf 应用程序的欢迎页面如下所示:

http://www.myjsfapp.com/

我需要访问它:

http://www.myjsfapp.com/index.html

为了实际传递参数:

http://www.myjsfapp.com/index.html?param=value

但是http://www.myjsfapp.com/index.html给了我一个404。

我错过了什么?

注意:我的 web.xml:

<welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
4

1 回答 1

0

您的项目中没有 index.html 文件。您的欢迎页面是 index.xhtml。注意 xhtml 和 html 之间的关系。

此外,如果您/faces/*的 web.xml 中有一个 servlet 映射。index.xhtml 应该以http://myjsfapp.com/faces/index.xhtml?param=value. 可以访问 http://myjsfapp.com/ index.xhtml?param=value,但是这个 URL 没有 JSF 能力。

一旦你添加了一个 servlet 映射,比如

<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>

在 URL中包含/faces/*模式的请求将由映射的 servlet 控制。它是Faces Servlet并且它将由javax.faces.webapp.FacesServlet班级控制。此 servlet 映射为您的请求提供 JSF 功能。没有 /faces/* 的其他 URL 将不会在内部运行,Faces Servlet这意味着没有 JSF 功能。

于 2013-07-15T11:41:26.590 回答