Він все ще використовується для багатьох речей, які не можна анотувати. Наприклад, власні повідомлення про перевірку JSF:
<application>
<message-bundle>com.example.i18n.messages</message-bundle>
</application>
Глобальний пакет i18n (так що вам не потрібно оголошувати <f:loadBundle>
в кожному поданні):
<application>
<resource-bundle>
<base-name>com.example.i18n.Text</base-name>
<var>text</var>
</resource-bundle>
</application>
Явно підтримувані локалі i18n (так що незадекларовані будуть проігноровані, навіть якщо для них є пакет повідомлень або пакет ресурсів):
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>nl</supported-locale>
<supported-locale>es</supported-locale>
<supported-locale>de</supported-locale>
</locale-config>
</application>
Спеціальні обробники подання :
<application>
<view-handler>com.example.SomeViewHandler</view-handler>
</application>
Фазові прослуховувачі (до цього часу немає анотації):
<lifecycle>
<phase-listener>com.example.SomePhaseListener</phase-listener>
</lifecycle>
Керовані боби , які не можуть бути анотований (нижче один дає струм Date
ON #{now}
):
<managed-bean>
<description>Current date and time</description>
<managed-bean-name>now</managed-bean-name>
<managed-bean-class>java.util.Date</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
Призначені для користувача фабрики, такі як обробник виключень завод (це також дозволяє заводи для FacesContext
, ExternalContext
, LifeCycle
і багатьох інших , так що ви можете надати власну реалізацію):
<factory>
<exception-handler-factory>com.example.SomeExceptionHandlerFactory</exception-handler-factory>
</factory>
Назвати лише загальновживані. Якщо faces-config.xml
у вашому IDE є автозаповнення тегів, ви зможете знайти їх усі. Тільки керовані компоненти, валідатори, перетворювачі, компоненти, візуалізатори та випадки навігації від точки до точки більше не потрібні завдяки новим анотаціям та неявній навігації.