web-dev-qa-db-fra.com

Quelle est l'utilisation de faces-config.xml dans JSF 2?

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>
86
Mahmoud Saleh

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.

138
BalusC