【问题标题】:faces-config.xml is config filefaces-config.xml 是配置文件
【发布时间】:2013-12-24 19:09:32
【问题描述】:

默认情况下,当我们创建 Web 应用程序时,faces-config.xml 不会自动创建。我们必须手动创建他,据我所知faces-config.xml 必须严格位于WEB-INF

那么,我的问题:

WEB-INF 或其他文件夹中创建后,我是否必须在web.xml 中注册faces-config.xml,还是自动注册。 IE。 JSF 是否“知道”faces-config.xml 是什么,并且可以在所有项目的文件夹中找到他。

希望,我问的是正确的问题。;)

【问题讨论】:

    标签: jsf faces-config


    【解决方案1】:

    取自FacesServlet 文档:

    如果未在 web.xml 或 web-fragment.xml 中显式映射并且满足以下一个或多个条件,则必须自动映射此 servlet。

    • 在 WEB-INF 中找到了 faces-config.xml 文件。

    • 在应用程序类路径中 jar 的 META-INF 目录中找到 faces-config.xml 文件。

    • 在应用程序类路径的 jar 的 META-INF 目录中找到以 .faces-config.xml 结尾的文件名。

    • javax.faces.CONFIG_FILES 上下文参数在 web.xml 或 web-fragment.xml 中声明。

    • 传递给 ServletContainerInitializer 实现的 onStartup() 方法的类集不为空。

    您可以将配置文件放在 web 应用的其他位置,但您需要记住以下事实:

    1. 您不想公开文件以供访问,因此您希望它最终位于 WEB-INF/META-INF 文件夹下;
    2. 您需要将以下条目添加到您的 web.xml:

      <context-param>
          <param-name>javax.faces.CONFIG_FILES</param-name>
          <param-value>
              WEB-INF/path/to/faces-config.xml
         </param-value>
      </context-param>
      

    否则,如果在某些预定义的位置找到 faces-config.xml,则会自动加载。

    【讨论】:

    • 太棒了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多