JSF2.2 – Inclure une librairie Javascript
Il existe un composant standard pour inclure une librairie Javascript : h:outputScript. Pour que JSF trouve cette librairie, il faut quelle soit présente dans un répertoire de type resources :
- Soit à la racine du contexte web :
src/main/webapp/resourcespour un projet Maven - Soit directement encapsulée dans un jar :
META-INF/resources
A mon sens, les deux attributs les plus importants de ce composant sont :
library: Le chemin du répertoire où se trouve le fichier Javascript en prenant en compte le répertoireresourcescomme référencename: Le nom du fichier Javascript
Par exemple pour inclure le fichier Javascript se trouvant dans src/main/webapp/resources/ma/librairie/lib.js ou bien dans META-INF/resources/ma/librairie/lib.js :
<h:outputScript library="ma/librairie" name="lib.js" />
Pour tester sur des cas réels, vous pouvez récupérer une des nombreuses librairies Javascript packagées dans un jar disponibles à cette adresse : http://www.webjars.org/. Pour vous facilité la tâche ces librairies sont disponibles sur Maven. Par exemple pour ajouter aux dépendances de votre projet la librairie amchart :
<dependency>
<groupId>org.webjars</groupId>
<artifactId>amcharts</artifactId>
<version>3.10.0</version>
</dependency>