Article n° 35

En ligne: 26 mai 2012
Modifié le: 1er septembre 2012
Popularité: 2
Nb visites: 3807

mots clés

Glassfish , Java , JSF , Netbeans , PrimeFaces , WEB

Java

Utiliser PrimeFaces 3 avec GlassFish 3

Par: Chris

PrimeFaces est une puissante librairie de composants JSF qui s’appuie sur la librairie Ajax jQuery. Il peut être intéressant de pouvoir utiliser la dernière version dans ces projets WEB.

Présentation

Lorsque l’on veut développer une application JSF sous NetBeans 7.x, il est possible, lors de la création d’un nouveau projet, de sélectionner la librairie PrimeFaces pour définir son interface WEB. Malheureusement, ce n’est pas la dernière version 3 qui est proposée mais la version 2.x.

Cet article vous décrit comment paramétrer votre projet pour utiliser une version plus récente.

Configuration du projet

Récupérez depuis le site de PrimeFaces, l’archive de la dernière version primefaces-3.x.x

Créez un nouveau projet WEB/JSF mais ne sélectionnez pas PrimesFaces dans la liste des composants. Une fois votre projet créé, sélectionnez le répertoire libraries à partir de la vue Projets Cliquez sur le bouton droit pour afficher le menu contextuel, et sélectionnez Ajouter un fichier jar ou un dossier.... A partir de la boite de dialogue sélectionnez le fichier précédement récupéré et cliquez sur Ok.

Attention : PrimesFaces est maintenant intégré à votre projet mais il reste un petit problème par rapport à GlassFish 3 que nous allons régler dans le paragraphe suivant.

Erreur d’encodage UTF-8

Si vous utilisez GlassFish 3, vous devriez avoir le message d’erreur suivant lors de l’exécution de votre programme si vous validez un formulaire.

Message: ATTENTION: PWC4011 Unable to set request character encoding to UTF-8 from context... beacause request parameters hav already been read,

Remarque : Vous aurez ce message d’erreur même si vous n’utilisez aucun composant PrimeFaces dans vos pages. L’importation de la librairie dans le projet est suffisante pour avoir ce message.

La solution est d’ajouter dans le fichier glassfish-web.xml ces lignes :

<glassfish-web-app error-url="">
 <parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>

Si ce fichier n’existe pas dans votre projet, vous pouvez utiliser l’assistant de NetBeans à partir des options de menu : Fichier → Nouveau fichier. Choisissez dans Catégorie : GlassFish puis dans Type de fichier : GlassFish descriptor. Il vous restera à ajouter une ligne pour avoir le contenu suivant :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
 <parameter-encoding default-charset="UTF-8" />
 <class-loader delegate="true"/>
 <jsp-config>
   <property name="keepgenerated" value="true">
     <description>Keep a copy of the generated servlet class' java code.</description>
   </property>
 </jsp-config>
</glassfish-web-app>

Vous pourrez maintenant utiliser les nouveaux composants de la dernière version. Attention toute fois, lorsque vous définirez une nouvelle page JSF, la référence à la librairie a changée par rapport à la version 2. La syntaxe est maintenant la suivante :

<html xmlns="http://www.w3c.org/1999/xhtml"       
        xmlns:h="http://java.sun.com/jsf/html"       
        xmlns:p="http://primefaces.org/ui">
 <h:head>
 </h:head>
       
 <h:body>
   <p:editor />
 </h:body>
</html>

SPIP |