faces-config.xml是配置文件

时间:2013-12-07 11:21:23

标签: jsf faces-config

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

所以,我的问题:

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

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

1 个答案:

答案 0 :(得分:19)

取自FacesServlet文档:

  

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

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

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

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

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

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

  •   

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

  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>
    
  3. 否则,如果在某些预定义位置找到faces-config.xml,则会自动加载。