JEE Approfondi

16
JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri

description

Frameworks : Maverick (MVC) JiBX (Persistance XML) Boutin Benoit, Jean Simon, Luit Dimitri. JEE Approfondi. 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 : - PowerPoint PPT Presentation

Transcript of JEE Approfondi

Page 1: JEE Approfondi

JEE Approfondi

Frameworks :Maverick (MVC)

JiBX (Persistance XML)

Boutin Benoit, Jean Simon, Luit Dimitri

Page 2: JEE Approfondi

Maverick

Avantages : Simple à utiliser (1 seul fichier xml pour gérer les

vues et les commandes) Permet d'utiliser des technologies de transformation

Page 3: JEE Approfondi

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é

Page 4: JEE Approfondi

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>

Page 5: JEE Approfondi

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>

Page 6: JEE Approfondi

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.

Page 7: JEE Approfondi

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.

Page 8: JEE Approfondi

JiBX

Avantages Permet de passer du java au xml et inversement

facilement une fois installé Performant Documentation suffisante

Page 9: JEE Approfondi

JiBX

Inconvénients Difficultés d'installation Modification des classes implique de refaire le

binding.

Page 10: JEE Approfondi

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.

Page 11: JEE Approfondi

Mise en place de JiBX

Plugin Eclipse (difficulté à comprendre l'utilisation)

Utilisation de JiBX depuis le zip téléchargé

Page 12: JEE Approfondi

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.

Page 13: JEE Approfondi

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; }

Page 14: JEE Approfondi

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>

Page 15: JEE Approfondi

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>

Page 16: JEE Approfondi

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.