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

Servlets/JSP Java Discussion :

Compilation de balise personnalisée utilisant Expression Language


Sujet :

Servlets/JSP Java

  1. #1
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut Compilation de balise personnalisée utilisant Expression Language
    Hello,

    J'ai écumé google à la recherche de la solution à mon problème, mais mes mots-clés ne semblent pas être les bons.

    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
    29
    30
    31
    32
    33
    34
    java.lang.NumberFormatException: For input string: "${value}"
    	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    	at java.lang.Integer.parseInt(Integer.java:447)
    	at java.lang.Integer.valueOf(Integer.java:553)
    	at org.apache.jasper.compiler.Generator$GenerateVisitor.convertString(Generator.java:1825)
    	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:1761)
    	at org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:1356)
    	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1179)
    	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:707)
    	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
    	at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1190)
    	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:707)
    	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
    	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1076)
    	at org.apache.jasper.compiler.Node$Root.accept(Node.java:232)
    	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
    	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1090)
    	at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:319)
    	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
    	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1076)
    	at org.apache.jasper.compiler.Node$Root.accept(Node.java:232)
    	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    	at org.apache.jasper.compiler.Generator.generate(Generator.java:1917)
    	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:242)
    	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
    	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    Cette balise EL, contenu dans un taglib personnalisé, ne passe pas à la compilation pour une raison qui m'est inconnue. Normalement, le ${value} ne devrait pas être interprété à la compilation et par conséquent, ne devrait pas engendrer de NumberFormatException. Pour information, voila comment est déclaré le champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <attribute>
     <name>value</name>
     <required>true</required>
     <rtexprvalue>false</rtexprvalue>
     <type>int</type>
    </attribute>
    PS: j'ai également tenté avec rtexprvalue à true
    Sauriez-vous où se trouve le problème pour que la balise EL soit interprétée dès la compilation ?
    Pensez au tag

  2. #2
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    Salut.

    Ce sera loin de vous aider je pense.
    Si vous faites e taglib à l'ancienne (code), il me semble que la compilation ne se réalise qu'en une seule fois. Lorsque l'on créé les taglibs personnalisés, la compilation de ces taglibs se réalise en même temps que les autres. C'est à dire qu'il interprète les taglibs "standards" et les personnalisés en même temps. Ce qui fait qu'on ne peut utiliser de taglibs dans les taglibs.

    Ce que vous pouvez faire au mieux, c'est d'étendre un taglib existant.


    Sinon, si vos le faites sans le code, j'ai trouvé ce site
    => page 2 intéressante

  3. #3
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    C'est un peu ce que je me disais en essayant d'analyser le problème, mais je suis surpris que les tags EL ne puissent être pris en compte. A quoi sert le champ rtexprvalue sinon ? Il ne sont à utiliser que dans le cadre de l'extension d'un tag existant ?

    En tout cas, je vais tâcher de lire attentivement le lien ce week end pour utiliser une autre alternative que celle mise en place actuellement. Merci !

    Je reviendrai donner des nouvelles
    Pensez au tag

  4. #4
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    pour rtexprvalue, c'est pour indiquer si tu peux associer une valeur calculée par du code java <%= %>. Il y a des infos ici

  5. #5
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Désolé de ne pas être repassé avant. Ce problème est résolu. J'utilisais en fait le mauvais conteneur. En passant en tomcat5.5, le problème a été corrigé.
    Pensez au tag

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

Discussions similaires

  1. Utiliser expression languages EL
    Par totoche dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/08/2008, 18h59
  2. Expression language non active
    Par brainstorm dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 15/06/2006, 16h22
  3. [JSP] Expressions Languages et constantes
    Par Beuss dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/06/2006, 12h03
  4. Réponses: 2
    Dernier message: 15/03/2006, 11h13
  5. Réponses: 20
    Dernier message: 28/01/2006, 12h27

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