Après le gros support JSF 2 pour les annotations, je me demande à quoi j'utiliserais le faces-config.xml
. Quelle est son importance maintenant?
En d'autres termes, quelles sont les configurations qui ne peuvent être effectuées que via 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>
jsf
jsf-2
faces-config
Mahmoud Saleh
la source
la source
<el-resolver>
dans monfaces-config.xml
et cela fonctionne parfaitement.Réponses:
Il doit encore être utilisé pour de nombreuses choses qui ne peuvent pas être annotées. Par exemple, messages de validation JSF personnalisés:
Un bundle i18n global (pour que vous n'ayez pas besoin de déclarer
<f:loadBundle>
dans chaque vue):Les locales i18n explicitement prises en charge (afin que celles non déclarées soient ignorées même s'il existe un ensemble de messages ou de ressources pour cela):
Gestionnaires de vues personnalisées :
Écouteurs de phase (il n'y a toujours pas d'annotation pour cela):
Haricots gérés qui ne peuvent être annotés (ci - dessous l'on donne en cours
Date
sur#{now}
):Usines personnalisées, telles que l' usine de traitement d'exception personnalisée (elle permet aussi des usines pour
FacesContext
,ExternalContext
,LifeCycle
et beaucoup d' autres pour que vous puissiez fournir votre implémentation personnalisée):Pour ne citer que ceux couramment utilisés. Si vous avez la
faces-config.xml
saisie semi-automatique des 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.la source
java.util.HashMap
as#{components}
est stocké dans la portée de la requête pour avoir une meilleure vue d'ensemble déclarative de toutes les liaisons de composants. Par exemple,binding="#{components.foo}"
pour qu'il puisse être référencé comme#{components.foo}
étant plus auto-documenté et moins risqué (en raison de conflits de noms potentiels) quebinding="#{foo}"
et#{foo}
.