Le Framework Cook XML

 

Le Framework CookXML est un outil de liaisons de données XML qui permet de passer d'un fichier XML écrit dans un certain format aux classes orientées objets correspondantes (Java, C++, etc.). L'opération inverse, qui permettrait de créer un fichier XML au format utilisé par CookXML, à partir de classes et d'instances issues de la programmation orientée objets, est prévue mais n'est pas encore implémentée dans le Framework. Ce Framework est distribué sous une licence permissive de type X11.

CookXML permet donc de passer d'un fichier XML aux classes orientées objets correspondantes. Pour effectuer cette opération, la construction des objets a été ramenée à trois étapes très générales :

CookXML fonctionne en créant une bibliothèque dynamique de tags (les creator, setter, converter et adder) qui se chargeront de traiter le fichier XML selon la volonté de celui qui écrit le code.

Sur le plan technique, CookXML fonctionne, depuis sa version 3.0, au dessus d'un arbre DOM XML, ce qui permet notamment d'utiliser un schéma XSD pour vérifier la cohérence d'un arbre XML, mais peut poser des problèmes de consommation mémoire dans le cas de très gros fichiers XML.

Deux implémentations de CookXML ont déjà été créées : CookSwing et CookSWT. La première permet de générer une IHM Swing à partir d'un fichier XML, et la deuxième fait la même chose pour une IHM SWT. Elles permettent de créer des instances pour toutes les classes les plus importantes de ces deux types d'IHM : les différents types de Layout, y compris les plus complexes, les Listener, etc. Que ce soit l'une ou l'autre, elles intègrent aussi des éléments non-spécifiques mais très utiles, notamment des conteneurs.
Il s'agit dans les deux cas d'extensions de CookXML qui ont adapté le Framework de base à leurs besoins spécifiques. Les deux sont réputés stables et fonctionnels.

 

Bibliographie :

Les sources utilisées pour ce petit résumé sont :

 

 

 

 

 

 

 

Struts 1.x

 

Introduction :

Struts est un framework pour JEE. Il est utilisé suivant le pattern MVC. Ce framework est édité par la fondation Apache. Les différents avantages de Struts sont le paramétrage par des fichiers XML, une surcouche sur les servlet avec les classes Action et ActionForm, la facilité de paramétrage des différentes langues, ainsi que l’insertion de taglib dans les pages JSP. Il y a aussi quelques inconvénients, tel que une certaine lourdeur pour installer, ainsi que des problèmes de visibilité pour suivre le cheminement des erreurs, problème inhérent au JEE.

 

Paramétrage par des fichiers XML

Afin de faciliter la configuration de Struts, il existe des fichiers xml. Par exemple, le struts config, qui va définir les emplacements des beans et leurs appellations dans l’application, mais aussi le mapping, c'est-à-dire quelles sont les Action qui seront utilisées pour les pages JSP via le nom des servlets utilisées. Une autre action possible est de définir quelle action sera à effectuer sur la classe Action, et ainsi de changer les traitements à effectuer.

 

 

 

Les classes Action et ActionForm

Les classes Action et ActionForm sont des classes de Struts qui remplacent les servlets. La classe ActionForm est le formulaire qui peut etre utilisé. Elle contient les méthodes validate, qui vérifient si les informations données sont correctes, et peuvent ainsi etre traité par l’Action.
La classe Action contient la méthode execute, qui retourne une actionForward, et qui est la méthode de traitement de Struts. C’est cette méthode qui remplace les doGet et les doPost des servlets. Ces deux méthodes sont donc des surcouches sur les servlets, et font le travail du graphique ci-contre.

 

 

Paramétrage des langues

Afin de faciliter le travail de traduction, il existe dans Struts des fichiers de ressources qui changent en fonction de la langue du Browser web, tel que le français ou l’anglais. Ces fichiers sont les fichiers messageRessource.properties. Ces fichiers sont sous la forme une clé = un message, la clé étant une chaîne de caractère. Ces messages seront appelés dans les JSP. Ainsi, lors de la traduction d’un site web, il suffit de créer un nouveau messageResource.properties, et on ne touche pas aux informations contenues dans la page JSP. Pour afficher ces ressources, on utilisera des taglib qui se nomment bean, comme par exemple :

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<bean:message key="welcome.title"/>

 

Taglib

Les taglibs sont des balises qui sont insérables dans les pages JSP, comme, par exemple, les tags JSTL. Les tags struts sont aux nombres de quatre :

  • Les beans, vu ci-dessus,
  • Les html, qui remplacent les balise HTML,
  • Les logic, orientées pour les opérations de logique, telle que la recherche d’égalité
  • Les nested.
  • Site des api : http://struts.apache.org/1.x/struts-taglib/tlddoc/index.html

     

    Inconvénient

    Le système Struts est un système qui a fait ses preuves. Cependant, il reste difficilement installable et paramétrable. Un fois installé, il reste facile d’utilisation. Un autres problème, inhérent au JEE, est la difficulté à trouver une erreur. En effet, avec la multiplication des fichiers et la séparation des actions a effectuer, on peut ne pas voir une erreur, car c’est le système qui va appeler une fonction, que l’on ne verra donc pas lors du débuggage.

     

    Conclusion

    Struts est un framework reconnu, qui reste facilement compréhensible, tout en ayant une grande variété de fonctionnalités. Les inconvénients sont principalement lors de la prise en main du framework.

     

    Bbliographie :

    http://struts.apache.org/1.x/apidocs/index.html
    http://struts.apache.org/
    http://en.wikipedia.org/wiki/Apache_Struts
    http://java.developpez.com/faq/struts/

     

    Ressources associées :

    Exemple d'un projet faisant fonctionner ces deux frameworks : Projet.war

    Présentation détaillée des frameworks (appliqués au projet) : Présentation.pdf