web.xml для лиц Java-сервера

Я только начал изучать серверные лица Java и успешно протестировал свое первое веб-приложение на JSF.

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

Так как же происходит навигация?


person Anand Sunderraman    schedule 19.01.2010    source источник


Ответы (2)


Для спецификации JSF 1.2 (JSR 252) требуется любая реализация JSF для автоматической загрузки /WEB-INF/faces-config.xml при запуске (если такой ресурс существует).

Цитата из раздела 10.4.2 Поведение при запуске приложения:

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

  • Найдите все ресурсы с именем “META-INF/faces-config.xml” в ServletContext путях ресурсов для этого веб-приложения и загрузите каждый как ресурс конфигурации JSF (в порядке, обратном порядку, в котором они возвращаются getResources() в текущем потоке ContextClassLoader).
  • Проверьте наличие параметра инициализации контекста с именем javax.faces.CONFIG_FILES. Если он существует, трактуйте его как разделенный запятыми список относительных путей к ресурсам (начиная с «/») и загружайте каждый из указанных ресурсов.
  • Проверьте наличие ресурса конфигурации веб-приложения с именем “/WEB-INF/faces-config.xml” и загрузите его, если этот ресурс существует.
person Pascal Thivent    schedule 19.01.2010

Я считаю, что сервлет Faces, определенный в web.xml, загружает faces-config.xml при запуске веб-приложения.

person Kaleb Brasee    schedule 19.01.2010
comment
Вы говорите, что верите, разве вы не можете сказать мне наверняка, что происходит именно так? Означает ли это, что он ищет файл faces-config.xml в местоположении по умолчанию? Могу ли я изменить это местоположение по умолчанию? - person Anand Sunderraman; 19.01.2010