Я только начал изучать серверные лица Java и успешно протестировал свое первое веб-приложение на JSF.
Что меня озадачивает, так это то, что правила навигации указаны в моем файле faces-config.xml, расположенном в моей папке WEB-INF, и нигде в моем web.xml я не указал местоположение моего файла faces-config.xml.
Так как же происходит навигация?
Ответ 1 · рейтинг 5 · Pascal Thivent
Для спецификации 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" и загрузите его, если этот ресурс существует.
Ответ 2 · Kaleb Brasee
Я считаю, что сервлет Faces, определенный в web.xml, загружает faces-config.xml при запуске веб-приложения.