160 likes | 306 Views
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 :
E N D
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 : • 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é
Fichier 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 : <?xmlversion="1.0"encoding="UTF-8"?> <maverickversion="2.0"default-view-type="document"default-transform-type="document"> <views> <viewid="test"path="test.jsp"/> <viewid="test2"path="test2.jsp"/> </views> <commands> <commandname="identifier"> <controllerclass="controller.IdentificationController"/> <viewname="utilisateur"path="accueil.jsp"> <transformpath="generalInterieur.jsp"/> </view> <viewname="administrateur"path="accueilAdmin.jsp"> <transformpath="adminInterieur.jsp"/> </view> <viewname="error"path="erreur.jsp"> <transformpath="generalExterieur.jsp"/> </view> </command> </commands> Mise en place de Maverick
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:outvalue="${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.
public class Person { public int customerNumber; public String firstName; public String lastName; } 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; • }
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.