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

Struts 1 Java Discussion :

[Struts][JSTL] EL non évalué


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [Struts][JSTL] EL non évalué
    Bonjour

    j'ai un pb bloquant, ca serait chouette si qqn pouvais me donner un pptit coup de pouce.

    ds le script suivant i n'est pas évalué dans &pageNumber=${i}"

    merci de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Pages : <c:out value="${wcmSessionBean.listCounter.totalPages}"/><BR>
     
    <c:forEach var="i" begin="0" end="${wcmSessionBean.listCounter.totalPages}">
    		<html:link href="/viewmain.do?actionType=changeContentPage&pageNumber=${i}" urlType="standard"><c:out value="${i}" /></html:link>&nbsp;
    	</c:forEach>
    piste 1 : utilser les scriptlets : ca marche pas
    &pageNumber=<%=pageContext.getAttribute("test") %>

    piste 2 : utiliser le tag <logic:iterate>, la non plus je n'arrive pas faire la boucle.

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel version de J2EE ? De ton serveur d'application ? De la JSTL ?
    Quel entête tu utilises pour ton fichier web.xml ?

    a++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    voila voila
    serveur : websphere portal 5.1.0.1
    moteur de servlet : 2.3
    struts 1.1
    jstl 1.1

    entete web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    sinon j'ai réussi a passer des parametres en faisant comme ca mais c un peu crado. comment ne pas utiliser les scriptlets ici ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <%java.util.Map parametersMap = new java.util.HashMap(); 
    	pageContext.setAttribute("parametersMap", parametersMap);
    	%>
    	Pages : <c:out value="${wcmSessionBean.listCounter.totalPages}"/><BR>
    	<c:forEach var="i" begin="0" end="${wcmSessionBean.listCounter.totalPages}">
    		<c:set var="pageNumber"><c:out value="${i}" /></c:set>
    		<%parametersMap.put("pageNumber", pageContext.getAttribute("pageNumber")); %>
    		<html:link href="/viewmain.do?actionType=changeContentPage" name="parametersMap" urlType="standard"><c:out value="${i}" /></html:link>&nbsp;
    	</c:forEach>
    c'est surtout ca qui est vraiment pas top :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     <c:set var="pageNumber"><c:out value="${i}" /></c:set>
    <%parametersMap.put("pageNumber", pageContext.getAttribute("pageNumber")); %>

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par captain_kirk
    moteur de servlet : 2.3
    jstl 1.1
    Tu es sûr de ca ? Avec les servlet 2.3 (JSP 1.2) tu devrais utiliser la JSTL 1.0, c'est à dire l'URI suivante : "http://java.sun.com/jstl/core" (voir Les versions de la JSTL).


    Avec un moteur 2.4 (JSP 2.0), les EL sont géré par le moteur JSP AVANT d'appeller les tags, et fonctionne donc potentiellement avec n'importe quel tag...


    Mais les moteurs de servlet 2.3 (Jsp 1.2) et inférieur ne gèrent pas les EL, et c'est la JSTL 1.0 qui les gère manuellement (les EL sont passés comme de simple chaine de caractères puis convertit dans le tag).


    Or Struts ne gère pas les EL par défaut, tu dois donc utiliser Struts-EL qui est une implémentation qui évalue également les EL comme la JSTL 1.0...


    a++

    PS : pense aux balises [code] c'est plus lisible

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    oups, effectivement je suis bien en jstl 1.0

    j'utilise http://java.sun.com/jstl/core qui est bien la version de base integrant un interpréteur d'Expressions Languages.

    mais si je comprends bien, vu ma version de moteur de servlet / jsp , il faut que j'utilise struts-EL c'est bien ca ??

  6. #6
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par captain_kirk
    si je comprends bien, vu ma version de moteur de servlet / jsp , il faut que j'utilise struts-EL c'est bien ca ??
    Oui.

    Struts-EL n'accepte que des chaines de caractères comme paramètres des tags (et pas de scriptlets Java <%= %> par exemple). Et c'est les tags eux-même qui font la conversion des EL une fois qu'ils sont appellé.

    Si tu utilisais un moteur JSP 2.0 les EL aurais été compatible automatiquement avec Struts car les EL seraient alors convertie avant d'appeller le tag (comme pour les scriptlets Java en somme).

    a++

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    je viens de regarder les versions de struts. la question ne se pose pas pour websphere portal. ils ont totalement réécrit les tags pour portal. il en existe qu'une seule version

    merci de ton aide.

    ps : pour revenir à ma question de depart, je suppose que la seule maniere de faire plus propre que mon code ci-dessus est d'avoir deja initialisé une map dans l'action.

  8. #8
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par captain_kirk
    ps : pour revenir à ma question de depart, je suppose que la seule maniere de faire plus propre que mon code ci-dessus est d'avoir deja initialisé une map dans l'action.
    Si tu ne veux pas utiliser de scriptlet... mais je ne trouve pas cela forcément très pratique...

    Tu peux aussi jeter un coup d'oeil à <c:url>, ce qui pourrait donner (mais encore avec des scriptlets) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <c:forEach var="i" begin="0" end="${wcmSessionBean.listCounter.totalPages}">
    	<c:url value="/viewmain.do" var="address">
    		<c:param name="actionType" value="changeContentPage"/>
    		<c:param name="pageNumber" value="${i}"/>
    	</c:url>
    	<html:link href="<%=pageScope.getAttribute("address")%>" urlType="standard"><c:out value="${i}" /></html:link>&nbsp;
    </c:forEach>

    a++

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    il y avait bien un piege que tu ne savais pas.

    en general j'essaye de ne pas trop exposer les specificités de mon environnement.

    en fait je suis obligé d'utiliser les tags <html:link> parce que portal me genere l'url. et cette url, tu peux pas la faire tout seul.
    ex : tu mets /action.do mais lui te generes un truc sur 3 lignes contenant les informations de session, de contexte liées aux portlets, leur etats etc ...

    c'est pour ca qu'ils ont réécrit les tags struts pour cet environnement. mais en general tu peux tout faire avec JSTL qd meme sauf ... les URL.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    URL JSTL :
    /viewmain.do?actionType=changeContentPage&pageNumber=0
     
    URL html:link (en + j'ai viré une bonne moitié de l'url)
    /wps/myportal/!ut/p/kcxml/04_Sj9SPykssy0A!!/delta/base64xml/L0lJSdG
    VuZXI!?PC_7_0_BH2_spf_strutsAction=!2fviewmain.do!3factionType%3d
    changeContentPage!26pageNumber%3d0#7_0_BH2
    saurais-tu comment le faire avec un logic:iterate ?

    merci encore.

  10. #10
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par captain_kirk
    saurais-tu comment le faire avec un logic:iterate ?
    Sans scriplets non pas trop...


    Mais pour revenir à ton problème d'URL, logiquement les information de session etc. devraient être rajouté à l'URL via la méthode encoreURL() de l'objet response, et c'est ce qui est utilisé par la JSTL...

    Donc ca devrait marcher... sinon ca ne me semble pas très standard tout ca...

    a++

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    j'essayerai.

    merci de ton aide.

    a bientot.

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

Discussions similaires

  1. Struts + JSTL et Tag non terminé
    Par hamza_bba dans le forum Struts 1
    Réponses: 7
    Dernier message: 13/03/2009, 15h21
  2. Réponses: 6
    Dernier message: 05/01/2006, 16h37
  3. [Struts] JSTL ou tagLib Struts
    Par DeeJimy dans le forum Struts 1
    Réponses: 2
    Dernier message: 03/07/2005, 18h33
  4. [Struts] <logic:equal> pb avec value ?
    Par Pwill dans le forum Struts 1
    Réponses: 3
    Dernier message: 03/06/2005, 09h57
  5. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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