UTF-8 - gardeux

publicité
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 Maverick

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 :
<?xml version="1.0" encoding="UTF-8"?>
<maverick version="2.0" default-view-type="document" default-transformtype="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 class Person {
public int
customerNumber;
public String city;

public String firstName;

public String state;

public String lastName;

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.
Téléchargement