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 :

Affichage avec jsp:usebean


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Par défaut Affichage avec jsp:usebean
    Bonjour,

    je suis en train d'essayer d'afficher une liste de résultat provenant d'une table de ma base de données.

    j'essaye de le faire de 3 manières diférentes :

    les 2 premières fonctionnent

    par la balise logic:iterate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			<table border="1" width="300">
    				<logic:iterate id="result" name="liste2">
    					<tr>
    						<td><bean:write name="result" property="libelle_type_adresse" /></td>
    					</tr>
    				</logic:iterate>
    			</table>
    la deuxième avec la méthode classique :

    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
     
    <%
    	ArrayList test = (ArrayList)session.getAttribute("liste");
    %>
     
    			<table border="1" width="800">	
    				<%
    				for(int i=0;i<test.size();i++) {
    					BeanDspBureau dsp = (BeanDspBureau)test.get(i);
    				%>
    				<tr>
    					<td><input type="hidden" value="<%= dsp.getNumeroOffre() %>"></td>
    					<td class="styletest" width="80"><%= dsp.getLocalNumero() %></td>
    					<td class="styletest" width="120"><%= dsp.getLibTypeVoie() %></td>
    					<td class="styletest" width="400"><%= dsp.getLocalNomVoie() %></td>
    					<td class="styletest" width="120"><%= dsp.getLocalCommune() %></td>
    					<td class="styletest" width="80"><%= dsp.getLocalDept() %></td>
    				</tr>
    				<%
    				}
    				%>
    			</table>
    mais je voudrais utiliser les balises usebean et ça me retourne null à chaque fois ;

    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
     
    			<table border="1" width="800">	
    				<%
    				for(int i=0;i<test.size();i++) {
    				%>
    				<jsp:useBean id="beantest" scope="page" class="com.xxx.xxx.bean.BeanDspBureau"></jsp:useBean>
     
    				<tr>
    					<td><input type="hidden" value="jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" />"></td>
    					<td class="styletest" width="80">jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" /></td>
    					<td class="styletest" width="120">jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" /></td>
    					<td class="styletest" width="400">jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" /></td>
    					<td class="styletest" width="120">jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" /></td>
    					<td class="styletest" width="80">jsp:getProperty : <jsp:getProperty name="beantest" property="localNumero" /></td>
    				</tr>
    				<%
    				}
    				%>
    			</table>
    si quelqu'un peut m'aider à utiliser proprement ces balise jsp:usebean et jsp;getProperty...

    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Par défaut Bindings
    Il me semble bien que dans l'exemple qui ne marche pas, il manque la mise en correspondance entre le bean «beantest» et l'élement courant de l'ArrayList référencé par la variable «test».

    Du coup, pas étonnant que «beantest» reste désespérement null.

    Si tu n'as rien contre l'utilisation de la JSTL et du Expression Language (quitte à inclure les taglibs correspondants dans ton appli), tu pourrais écrire ce que tu souhaites de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <c: forEach var="beantest" items="test">
    <td><input type="hidden" value="${beantest.numeroOffre}"/></td>
    <td class="styletest" width="80">${beantest.localNumero}</td>
    ...
    </c:forEach>
    En résumé, la taglib «core» (prefixe «c:» pour les tags) fournit la construction pour l'énumération des éléments d'une collection. Dans l'exemple, cette collection est représentée par l'ArrayList «test» (attribut «items»), et la variable qui va prendre les valeurs successives est «beantest» (attribut «var»). Ensuite, l'Expression Language (qu'il ne faut pas oublier d'activer pour la JSP) permet (entre beaucoup d'autres choses) d'écrire des expressions du type «${bean.property}» où «bean» est un bean (! ) et où property est un attribut de la classe à laquelle appartient «bien» qui est soit public, soit accessible au travers d'un accesseur dont le nom est «getProperty» (attention à la casse des noms d'accesseurs).

    Donc, tu as un syntaxe assez propre qui évite de mélanger code java (entre <% et %>) et code HTML et tu gardes tout de même des facilités pour accéder aux attributs de tes beans (sans le <jsp:getProperty>).

    En espérant ne pas avoir été trop long

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Par défaut
    bonjour,

    merci pour ta réponse détaillée...

    en effet, le problème vient qu'il n'y ai pas de correspondance entre le bean et l'arraylist.

    effectivement je pourrai utiliser les JSTL. en fait cela revient à ma première solution (utilisation des balises struts ==> logic:iterate).

    en fait, je voudrais utiliser les <jsp:usebean....et jsp:getProperty... juste pour voir si cela peut focntionner de cette manière. Mais si c'est impossible, tant pis.
    J'ai déjà 2 méthode qui fonctionnent + ta solution avec les JSTL si je le souhaite.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/07/2013, 05h13
  2. Problème avec <jsp:useBean>
    Par SyLvErStOrM dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 02/09/2008, 17h18
  3. probleme avec jsp:useBean
    Par hypothese dans le forum Taglibs
    Réponses: 2
    Dernier message: 13/08/2008, 16h43
  4. probleme de jsp avec les usebean
    Par mokhtarmaroc dans le forum Taglibs
    Réponses: 2
    Dernier message: 10/09/2007, 23h28
  5. problème avec <jsp:usebean />
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/08/2006, 15h04

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