Article complet: Le saviez-vous ? Java est un Langage Objet !

19/09/2008

Permalink 09:30:23, Catégories: Java, Web, 458 mots   French (FR) , Nicolas Zozol

[Java] Le saviez-vous ? Java est un Langage Objet !

Hier, j'ai travaillé sur 4 fichiers tag de mon framework.

Un fichier tag permet de créer une nouvelle balise executant du code Java. Par exemple insérer dans un fichier JSP :
<robusta:auth controller=${usercontroller}/>
va lancer un code permettant de récupérer dans une variable authValue au choix le cookie authtoken ou le header Authorization et d'appliquer au Controller la fonction setAuthorizationValue(authValue).

[Suite:]

Il existe deux grandes techniques pour écrire un fichier tag :
- créer une classe implémentant l'interface Tag
- créer un fichier mélant XML et code Java.

Par exemple :
 
<%@tag description="create the variable auth for the JSP" pageEncoding="UTF-8"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
<%@ variable name-given="auth" scope="AT_END" %> 
<%@attribute name="mypage" rtexprvalue="true" type="javax.servlet.jsp.PageContext" required="true"%> 
 
<%  /* Code JAVA */ 
  String autho = "not found"; 
  javax.servlet.http.HttpServletRequest myrequest =(HttpServletRequest) mypage.getRequest(); 
  (...) 
  mypage.setAttribute("autho",authorizationValue, mypage.REQUEST_SCOPE); 
 
%> 
<c:set var="auth" value="${autho}"/> 

La première solution :
- requiert un fichier .java, écrit 100% en Java objet
- necessite une configuration dans un fichier xml séparé (le .tld pourr les intimes)
- le fichier .java est rangé où on le souhaite
- le .tld est rangé dans /META-INF/ ou /WEB-INF/, et est analysé par Ant ou Maven lors du build
- Lorsque le serveur traduit la jsp, il associe facilement la classe Tag

la deuxième solution :
- requiert un fichier .tag mixant la configuration et du java
- le .tld est facultatif
- le .tag doit se trouver dans /WEB-INF/tags
- le serveur traduit le .tag en même temps que la jsp, le fichier .java correct.

J'ai une nette préférence pour la deuxième solution, car elle est plus souple à manipuler et j'ai choisit le JSP plutôt que le PHP, pour la facilité d'utilisation du XML.

Par contre, il me semble impossible de distribuer proprement ces fichiers .tag dans un beau fichier .jar. Cela oblige tout programmeur souhaitant utiliser mes .tag de les copier dans leur répertoire /WEB-INF/tags. Et lorsque je modifie un de mes .tag, je dois les copier dans tous les WEB-INF de mes différents Web Services.

Par comparaison, lorsque je modifie mes classes utilitaires de mon framework (une classe sur les List par exemple), tous mes web services sont mis à jour avec un clean & build.

Une belle bibliothèque .jar avec des classes implémentant Tag peut donc se recompiler proprement, et rend la distribution bien plus propre.
Objet :1 - XML : 0

Social Bookmarking:

                                     

Commentaires:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: ilaborie [Membre]
Personnellement j'utilise la première solution quand je doit écrire un Tag qui contient beaucoup de code Java.

La seconde solution est très pratique pour écrire des tags ou il y a une majorité de HTML. On peut bien sur utiliser dans les .tag d'autre tag (JSTL, ...) et donc se passer complètement du Java dedans.


Permalien 19/09/2008 @ 10:38
Commentaire de: adiGuba [Membre] · http://adiguba.developpez.com
Je t'ai répondu sur le forum : http://www.developpez.net/forums/d616209/java/developpement-web-java/servlets-jsp/taglibs/distribuer-fichiers-tag-taglib-jar/

C'est tout à fait possible d'intégrer un fichier *.tag dans un jar, et de le déclarer dans le tld ;)

a++
Permalien 19/09/2008 @ 11:04

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Robusta : Java & RESTful Web Services

Il s'agit d'un Blog sur les meilleures utilisations de REST dans un environnement JAVA. Le Blog contient également du contenu sur la technologie Ajax et également un journal de bord sur le développement du site pédagogique http://www.Edupassion.com

Nicolas Zozol - Edupassion.com

Catégories


Rechercher

<  Février 2012  >
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web