【问题标题】:Preferred way to set up a JSF start page?设置 JSF 起始页的首选方式?
【发布时间】:2010-08-11 11:51:43
【问题描述】:

我正在使用 JSF 2.0 构建网站。 Eclipse 生成了以下 web.xml 文件

...
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
...

所以要查看我的应用程序,我必须访问“localhost/myApp/faces/index.xhtml”。我更喜欢通过访问“localhost/myApp/index.xhtml”直接查看它

我看到了两个选项:

将 web.xml 更改为以下内容

...
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
...

或者在我的基本目录中设置一个 index.xhtml,它直接对 faces/index.xhtml 执行 javascript/meta。

你觉得哪个更好?或者有其他方法可以做到吗?

【问题讨论】:

    标签: java deployment jsf facelets web.xml


    【解决方案1】:

    不要在所有请求上映射FacesServlet。您不想让静态(非 JSF)请求经历整个 JSF 生命周期。它只会增加不必要的开销。而是将FacesServlet 映射到*.xhtmlurl-pattern 上。

    如果您还有另一个xhtml 文件不需要经过JSF 工厂,那么请选择不同的url-pattern,如常用的*.jsf。您不需要重命名 actual 文件扩展名,FacesServlet 会自动找到正确的资源。

    绝对不要对主页使用 JS/元重定向。只需在web.xml 中将其声明为&lt;welcome-file&gt;


    也就是说,当拥有最新版本并正确配置时,Eclipse 应该默认自动生成 web.xml,并将 FacesServlet 映射到 *.jsfurl-pattern 上。确保您使用的是最新版本 (Helios) 并在 Eclipse 中正确执行所有操作(配置项目方面)。

    【讨论】:

    • 嗨,这也是我想到的选项(仅映射 .xhtml)。我使用 Eclipse Helios,它默认生成 .xhtml 文件以及上面带有 /faces/.. servletmapping 的 web.xml 文件。我认为在 JSF 2.0 中不再推荐使用 .jsf 了吗?我只有动态页面(因为 i18n)所以映射每个 .xhtml 应该没问题
    • 啊,那一定是我特定的 Eclipse 配置。在 JSF 2.0 中不再推荐的唯一方法是使用 JSP 而不是 Facelets :)
    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多