JEE Approfondi
description
Transcript of JEE Approfondi
JEE Approfondi
Frameworks :Maverick (MVC)
JiBX (Persistance XML)
Boutin Benoit, Jean Simon, Luit Dimitri
Maverick
Avantages : Simple à utiliser (1 seul fichier xml pour gérer les
vues et les commandes) Permet d'utiliser des technologies de transformation
Maverick
Inconvénients : Abandonné depuis plusieurs années par les
développeurs Peu de ressources sur Internet Pas de « vrai » tutorial Pas de gestion complexe des vues et des
controleurs Compatibilité
Mise en place de MaverickFichier web.xml :
<servlet> <display-name>Maverick Dispatcher</display-name> <servlet-name>dispatcher</servlet-name> <servlet-lass> org.infohazard.maverick.Dispatcher </servlet-class> <init-param> <!-- Optionnel --> <param-name>reloadCommand</param-name> <param-value>reload</param-value> </init-param> <load-on-startup>2</load-on-startup></servlet><servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.m</url-pattern></servlet-mapping>
Mise en place de Maverick
Fichier maverick.xml :<?xml version="1.0" encoding="UTF-8"?><maverick version="2.0" default-view-type="document" default-transform-
type="document">
<views><view id="test" path="test.jsp" /><view id="test2" path="test2.jsp" />
</views>
<commands><command name="identifier">
<controller class="controller.IdentificationController" />
<view name="utilisateur" path="accueil.jsp"><transform path="generalInterieur.jsp" />
</view><view name="administrateur" path="accueilAdmin.jsp">
<transform path="adminInterieur.jsp" /></view><view name="error" path="erreur.jsp">
<transform path="generalExterieur.jsp" /></view>
</command></commands>
Mise en place de Maverick
Ajouter maverick.jar dans lib de WEB-INF. Ajouter jdom.jar dans lib de WEB-INF. Ajouter commons-logging-1.0.3 dans lib de
WEB-INF. Ajouter maverick.xml dans WEB-INF.
Avant d'utiliser Maverick
L'objet Dispatcher gère les appels aux commandes Pour utiliser une commande, il faut la suffixer avec .m Pour les transformations de jsp. Si l'on utilise la
directive : <c:out value="${wrapped}" escapeXml="false" />.
Modifier la valeur de version dans web.xml à la valeur 2.3. Sinon erreur du fichier tld.
Selon les utilisations, il peut être necessaire d'utiliser les jar suivants : commons-logging-1.0.3.jar, jdom.jar commons-beanutils.jar, commons-collections.jar.
JiBX
Avantages Permet de passer du java au xml et inversement
facilement une fois installé Performant Documentation suffisante
JiBX
Inconvénients Difficultés d'installation Modification des classes implique de refaire le
binding.
JiBX
Fonctionnement en 2 phases : Binding :
Génération des fichiers .java et du fichier binding.xml à partir d'un schéma xml.
Runtime : Instanciation des objets Java à partir d'un fichier xml. Création d'un fichier xml à partir des informations des
objets Java.
Mise en place de JiBX
Plugin Eclipse (difficulté à comprendre l'utilisation)
Utilisation de JiBX depuis le zip téléchargé
Mise en place de JiBX
Créer un fichier xsd. Commande
java -cp jibx-tools.jar org.jibx.schema.codegen.CodeGen fichier.xsd crée les classes Java et binding.xml
javac *.java compile les classes générées. java -jar jibx-bind.jar binding.xml crée les .class
nécessaire au fonctionnement de JiBX en Runtime. On peut maintenant utiliser le Runtime.
Mise en place de JiBX
public class Customer { public Person person; public String street; public String city; public String state; public Integer zip; public String phone; }
public class Person { public int
customerNumber; public String firstName; public String lastName; }
Mise en place de JiBX Binding.xml : <?xml version="1.0" encoding="UTF-8"?> <binding> <mapping name="customer" class="Customer"> <structure name="person" field="person"> <value name="cust-num" field="customerNumber"/> <value name="first-name" field="firstName" /> <value name="last-name" field="lastName" /> </structure> <value name="street" field="street" /> <value name="city" field="city" /> <value name="state" field="state" /> <value name="zip" field="zip" /> <value name="phone" field="phone" /> </mapping> </binding>
Mise en place de JiBX
Fichier utilisé au lancement : <?xml version="1.0" encoding="UTF-8"?> <customer> <person> <cust-num>123456789</cust-num> <first-name>John</first-name> <last-name>Smith</last-name> </person> <street>12345 Happy Lane</street> <city>Plunk</city> <state>WA</state> <zip>98059</zip> <phone>888.555.1234</phone> </customer>
Avant d'utiliser JiBX
Sans le plugin Eclipse : peu pratique. Erreurs particulières :
Cannot cast from java.util.List<Utilisateur> to java.util.List<Utilisateur>
Obliger de passer par un objet intermédiaire. Constaté lors de l'utilisation d'ArrayList.