2013-12-07 2 views
4

По умолчанию при создании веб-приложения faces-config.xml не создается автоматически. Мы должны создать его вручную, и, как я понял, faces-config.xml должен быть расположен строго в WEB-INF.faces-config.xml - это файл конфигурации

Итак, мой вопрос:

Должен ли я зарегистрировать faces-config.xml в web.xml после создания в WEB-INF или другую папку или он автоматически регистрируется. То есть JSF «знает», что такое faces-config.xml и может найти его во всех папках проекта.

Надежда, я задал правильный вопрос .;)

ответ

14

Как взятую из FacesServlet документации:

Этот сервлет должен автоматически отображаться, если оно явным образом не отображается в web.xml или веб-фрагмента. xml и одно или несколько из следующих условий: true.

  • Файл faces-config.xml находится в WEB-INF.

  • Файл faces-config.xml находится в каталоге META-INF jar в пути к классам приложения.

  • Имя файла, оканчивающегося на .faces-config.xml, находится в каталоге META-INF jar в пути к классам приложения.

  • Параметр javax.faces.CONFIG_FILES контекста объявлен в web.xml или web-fragment.xml.

  • Набор классов, переданных методу onStartup() реализации ServletContainerInitializer, не пуст.

Вы можете поместить свой конфигурационный файл в другом месте в вашем веб-приложение, но вы должны иметь в виду следующие обстоятельства:

  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> 
    

В противном случае лица-config.xml загружается автоматически при обнаружении в некоторых заранее определенных местах.

+0

Отлично! Много thaks! –

+0

Добро пожаловать! – skuntsel

Смежные вопросы