【问题标题】:how to access http://www.myjsfapp.com/index.html in a jsf app? [duplicate]如何在 jsf 应用程序中访问 http://www.myjsfapp.com/index.html? [复制]
【发布时间】:2013-07-15 11:32:25
【问题描述】:

在浏览器 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>

【问题讨论】:

标签: java jsf url


【解决方案1】:

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

此外,如果您的 web.xml 中有 /faces/* 的 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 功能。

【讨论】:

  • 确实我忘记了映射到 /faces/ 的 servlet。对这样一个基本的错误表示感谢和抱歉!
  • 您答案中的 URL 模式存在严重的语法错误。
  • @BalusC 我想我一开始就删除了* 来修复它。很抱歉。
  • 我不建议使用 /faces/* 作为 URL 模式。参考this answer
猜你喜欢
  • 2012-11-17
  • 1970-01-01
  • 2018-05-15
  • 2020-06-20
  • 2021-09-21
  • 2016-01-31
  • 2019-10-06
  • 1970-01-01
  • 2014-06-21
相关资源
最近更新 更多