Après le gros support de JSF 2 pour les annotations, je me demande comment je pourrais utiliser le faces-config.xml
pour. Quelle est son importance maintenant?
En d’autres termes, quelles sont les configurations qui ne peuvent être effectuées que par faces-config.xml
et non via des annotations?
Pour le moment, tout ce que je l'utilise est de déclarer le résolveur EL de Spring.
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee
http://Java.Sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
</faces-config>
Il doit encore être utilisé pour beaucoup de choses qui ne peuvent pas être annotées. Par exemple. messages de validation JSF personnalisés:
<application>
<message-bundle>com.example.i18n.messages</message-bundle>
</application>
Un paquet global i18n (de sorte que vous n’ayez pas besoin de déclarer <f:loadBundle>
dans toutes les vues):
<application>
<resource-bundle>
<base-name>com.example.i18n.Text</base-name>
<var>text</var>
</resource-bundle>
</application>
Paramètres régionaux i18n explicitement pris en charge (afin que les paramètres non déclarés soient ignorés même s’il existe un ensemble de messages ou un ensemble de ressources):
<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>
Personnalisé voir les gestionnaires :
<application>
<view-handler>com.example.SomeViewHandler</view-handler>
</application>
auditeurs de phase (il n'y a toujours pas d'annotation pour cela):
<lifecycle>
<phase-listener>com.example.SomePhaseListener</phase-listener>
</lifecycle>
Beans gérés qui ne peuvent pas être annotés (celui ci-dessous donne le Date
actuel sur #{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>
Fabriques personnalisées, telles que fabrique de gestionnaires d’exceptions personnalisés (elle autorise également les fabriques pour FacesContext
, ExternalContext
, LifeCycle
et bien d'autres pour que vous puissiez fournir votre implémentation personnalisée):
<factory>
<exception-handler-factory>com.example.SomeExceptionHandlerFactory</exception-handler-factory>
</factory>
Pour ne nommer que ceux couramment utilisés. Si tu as faces-config.xml
auto-complétion de balises dans votre IDE, vous pouvez toutes les trouver. Seuls les beans gérés, les validateurs, les convertisseurs, les composants, les moteurs de rendu et les cas de navigation point à point ne sont plus nécessaires grâce aux nouvelles annotations et à la navigation implicite.