IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Taglibs Java Discussion :

Distribuer des fichiers.tag avec une taglib et un jar ? [Custom Tags 2.0]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Par défaut Distribuer des fichiers.tag avec une taglib et un jar ?
    Bonjour, j'ai un petit soucis.

    J'ai 4 petits tags bien sympa que j'aimerais mettre dans une bibliothèque ToolKit robusta.jar, qui elle contient pas mal de classes utilisatires.

    Le but étant de distribuer l'ensemble comme un framework pour la communauté (ouh que je suis gentil )

    J'ai donc dans mon répertoire robusta :

    • robusta/src/
      • /META-INF/
        • robusta.tld
      • /robusta
        • /mesclassesutiles/
        • /tags
          • request.tag
          • response.tag
          • redirect.tag
          • auth.tag
    Dans robusta.tld, j'aimerais mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <taglib version="2.0"...>
        <tlib-version>1.0</tlib-version>
        <short-name>robusta</short-name>
        <uri>http://www.robustaweb.com/tag</uri>
    <tag>
            <description>
            Catch correctly the request
            </description>
            <name>request</name>
            <tag-class>robusta.tags.request</tag-class>
            
        </tag>
    Les attributes sont gérés directement par le tag, et ce qui pose problème, c'est le <tag-class>.

    J'ai l'impression que je suis obligé de faire mon tag avec les vraies classes SimpleTag ou autres, et c'est pas cool ! Je tiens pas mal à mes petits .tag qui sont si facilement modifiables.

    Je tiens également à garder <uri>http://www.robustaweb.com/tag</uri>, puisque c'est là que sera stockée la doc... et ma pub. Faut bien vivre

    -----
    Pour la suite, je crée une appli web webtest avec Netbeans, et Netbeans y inclus donc robusta.jar dans WEB-INF/lib

    Je crée une page jsp, où j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%@page contentType="application/xml" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://www.robustaweb.com/tag" prefix="robusta" %>
     
    <%-- Retrieving Request specifications --%>
    <robusta:request />
    Netbeans me suggère bien le tag 'request', mais comme attendu il écrit ensuite :
    Unable to load tag handler class 'robusta.tags.request' for robusta.request
    -----
    J'ai bien essayé de mettre mes .tag dans robusta/src/META-INF/tags et même dans robusta/src/WEB-INF/tags, mais rien n'y fait. Il doit bien y avoir une possibilité !!!

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Par défaut
    J'ai pris un peu l'air et je me suis finalement rappelé que Java est un langage objet. En fait Ant ou quelque chose d'obscur génère un fichier .java puis le compile.

    J'avais espéré un moment que le tag figure dans le répertoire build, ou dans le .war décompilé, mais non. Tout semble pris en charge par le serveur tomcat et ses composants.

    A moins d'une solution miracle d'un executable qui transforme un .tag en Tag.class, je dois donc me mettre au Tag objets. Ben ce sera pour plus tard

    Pour la peine, j'en fais un bolg post :
    http://blog.developpez.com/java_rest..._langage_objet

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux très bien déployer un jar contenant des fichiers *.tag !!!


    Pour cela il est plutôt conseillé de placer les fichiers *.tag dans le répertoire META-INF/tags de l'arborescence de ton jar.

    Ensuite tu dois modifier un peu ton fichier *.tld en utilisant tlib-version 2.0 (les fichiers *.tag sont apparut avec les Taglibs 2.0), et en utilisant la balise <tag-file> pour déclarer tes fichiers *.tag avec un chemin relatif dans ton jar :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    	      version="2.0">
     
    	<tlib-version>2.0</tlib-version>
    	<short-name>robusta</short-name>
    	<uri>http://www.robustaweb.com/tag</uri>
     
    	<tag-file>
    		<description>Catch correctly the request</description>
    		<name>request</name>
    		<path>/META-INF/tags/mytags/request.tag</path>
    	</tag-file>
     
    </taglib>

    Tu dois déclarer tous tes fichiers *.tag pour qu'il soient pris en compte, en spécifiant au minimum le nom et le path...


    a++

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Par défaut

  5. #5
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Par défaut
    Un des problèmes apparent, c'est que je narrive pas à avoir les classes javax.servlet.* dans le classpath de mon jar.

    J'ai créé un .jar tout bête avec Netbeans, puis copié mes tags, et la tld dans META-INF.

    Mais Netbeans me dit qu'il n'y a pas de javax.servlet qui tienne. Je télécharge donc J2EE, mais une library avec j2ee.jar et javaee.jar, et là il ne se passe pas grand chose.

    Je ne peux donc pas vraiment modifier sérieusement mes .tag avec Netbeans une fois intégré dans mon 'framework' en .jar, cependant ca marche nikel !!!

    Dans le répertoire robust/src, j'introduis META-INF/robusta.tld et META-INF/tags/request.tag, ainsi que les 3 autres tags.

    robusta.tld :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
              version="2.0">
        <tlib-version>2.0</tlib-version>
        <short-name>robusta</short-name>
        <uri>http://www.robustaweb.com</uri>
     
        <tag-file>
            <name>request</name>
            <path>/META-INF/tags/request.tag</path>
        </tag-file>
        <tag-file>
            <name>response</name>
            <path>/META-INF/tags/response.tag</path>
        </tag-file>
        <tag-file>
            <name>easyget</name>
            <path>/META-INF/tags/easyget.tag</path>
        </tag-file>
        <tag-file>
            <name>auth</name>
            <path>/META-INF/tags/auth.tag</path>        
        </tag-file>
    </taglib>
    Je vous dirai à quoi servent tout ces tags une autre fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Distribuer un fichier excel avec une liaison de donnée
    Par Theka dans le forum Conception
    Réponses: 1
    Dernier message: 16/05/2015, 08h00
  2. Importez des fichiers XML avec une macro
    Par Neirda53 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/04/2011, 15h34
  3. Distribuer des fichiers avec une application
    Par srvremi dans le forum Android
    Réponses: 5
    Dernier message: 26/01/2011, 16h40
  4. ajout d'une description pour des fichiers listes avec apache
    Par deny dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 31/10/2007, 10h16
  5. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo