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 :

problème c:out dans un display:column


Sujet :

Servlets/JSP Java

Vue hybride

fakhita problème c:out dans un... 13/07/2007, 12h31
AnneB il vient d'ou ton ... 13/07/2007, 16h09
fakhita pratiques est une listes des... 13/07/2007, 16h29
AnneB Remplace le par : <c:out... 16/07/2007, 12h02
fakhita avec la première solution il... 16/07/2007, 14h19
AnneB Tu ne veux afficher qu'une... 16/07/2007, 15h10
fakhita oui, je veux afficher par... 16/07/2007, 15h47
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut problème c:out dans un display:column
    Bonjour,
    j'ai deux classes, une classe évaluation et une classe pratique. je veux afficher à l'aide de display:table toutes les enregistrements de la table évaluation qui contient, entre autres, un champ id_pratique relatif à la table pratique. je veux pour ce champ affiché, au lieu de l'id_pratique, le nom de la pratique qui se trouve dans la table pratique.

    voila le code de ma page jsp:

    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
     
    <display:table name="evaluationList" cellspacing="3" cellpadding="3" id="evaluationList" pagesize="25" class="table evaluationList" export="false" requestURI="">
     
    	<display:column   titleKey="evaluationForm.pratiqueId">  
    	          <c:out value='${pratiques.abreviation}'/>
    	</display:column>
     
    	<display:column property="critereDirectArtifact" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.critereDirectArtifact"/>
     
        <display:column property="critereIndirectArtifact" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.critereIndirectArtifact"/>
     
    	<display:column property="critereAffirmation" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.critereAffirmation"/>
     
    	<display:column property="critereFaiblesse" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.critereFaiblesse"/>
     
        <display:column property="dateEvaluation" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.dateEvaluation"/>
        <display:column property="moyenne" url="/editEvaluation.html" paramId="id" paramProperty="id" titleKey="evaluationForm.moyenne"/>
     
    </display:table>
    et j'ai dans evaluationAction.java une liste des pratiques.

    j'ai l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${pratiques.abreviation}": The "." operator was supplied with an index value of type "java.lang.String" to be applied to a List or array, but that value cannot be converted to an integer. (null)
    	at org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:109)
    	at org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:129)
    	at org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:75)
    	at org.apache.taglibs.standard.tag.el.core.ExpressionUtil.evalNotNull(ExpressionUtil.java:48)
    	at org.apache.taglibs.standard.tag.el.core.OutTag.evaluateExpressions(OutTag.java:99)
    	at org.apache.taglibs.standard.tag.el.core.OutTag.doStartTag(OutTag.java:57)
    	at org.apache.jsp.WEB_002dINF.pages.evaluationList_jsp._jspx_meth_c_out_0(evaluationList_jsp.java:384)
    	at org.apache.jsp.WEB_002dINF.pages.evaluationList_jsp._jspx_meth_display_column_0(evaluationList_jsp.java:354)
    	at org.apache.jsp.WEB_002dINF.pages.evaluationList_jsp._jspService(evaluationList_jsp.java:189)
    c'est la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <display:column   titleKey="evaluationForm.pratiqueId">  
    	          <c:out value='${pratiques.abreviation}'/>
    </display:column>
    qui est doit affiché le nom relatif à l'id de la pratique.

    je ne sais pas s'il y a une erreur au niveau de c:out

    merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    il vient d'ou ton ?

    "pratiques" c'est quoi?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    pratiques est une listes des pratiques qui est dans EvaluationAction.java comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PratiqueManager pratiqueManager=(PratiqueManager)getBean("pratiqueManager");
    		Pratique   pratique = new Pratique();
    		List pratiques= pratiqueManager.getPratiques(null);
    		pratiques.add(pratique);
    		EvaluationForm evaluationForm2 = (EvaluationForm)form;
    		evaluationForm2.setPratiques(pratiques);
    		request.getSession().setAttribute("pratiques", pratiques);
    et abreviation est un attribut de pratique que je veux afficher

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Citation Envoyé par fakhita
    <c:out value='${pratiques.abreviation}'/>
    Remplace le par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <c:out value='${sessionScope.pratiques.abreviation}'/>
    ou par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:forEach var="pratic" items="${sessionScope.pratiques}">
    <c:out value="${pratic.abreviation}"/>
    </c:forEach>
    Tufais cela en fait :
    - tu récupères la liste "pratiques" que tu as mise en session dans l'Action.
    - tu affiche le champ dont le getter est getAbreviation() dans le PratiqueManager

    et après dis moi si ca fait quelque chose?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    avec la première solution il génère une erreur, avec la deuxième il met la liste de toutes les pratiques, et non celle relatives à cette évaluation

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Tu ne veux afficher qu'une pratique par ligne de tableau c'est ca?
    et a chaque ligne du tableau correspond une pratique se trouvant dans la liste "partiques" ?

  7. #7
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Par défaut
    oui, je veux afficher par ligne du tableau la pratique relatives à cette ligne. puisque chaque évaluation est relative à une seule pratique. et dans la table évaluation on trouve l'id de la pratique. et c'est dans la table pratique qu'on trouve l'abreviation de la pratique relative à cette id.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    A mon avis fais le en java dans la jsp...Parce que sinon ca va pas être faisable.
    Le seul inconvénient c'est que à ce moment la tu ne pourras plus utiliser le display:table, ce qui est dommage car c'est un truc trop bien de Struts....

    Ou alors tu as une autre solution :
    Tu ajoutes le champ avec l'abreviation directement dans ta classe qui représente une ligne de ton display:table...C'est plus simple...Là c'est dans l'action que tu mettras à jour le champ.....

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

Discussions similaires

  1. [DisplayTag] Affichage d'une liste dans une <display:column>
    Par Guilhem3110 dans le forum Taglibs
    Réponses: 0
    Dernier message: 18/02/2015, 11h21
  2. Réponses: 1
    Dernier message: 11/07/2014, 02h22
  3. Problème HREF dans display column
    Par endbegins dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 09/04/2011, 13h37
  4. Réponses: 5
    Dernier message: 11/03/2011, 11h59
  5. [DisplayTag] Formatage en pourcent dans un Taglib display:column
    Par clementsoullard dans le forum Taglibs
    Réponses: 2
    Dernier message: 17/04/2009, 10h36

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