[JSP] créer tableau dynamique en servlet

créer tableau dynamique en servlet [JSP] - Java - Programmation

Marsh Posté le 02-05-2007 à 14:10:46    

Bonjour ,
 
je voudrais créer un tableau dynamique en servlet/jsp.
 
Pour cela mon code dans mon .jsp est le suivant :
 
 
<%=
for (i= 0 ; i < <%= (String)request.getAttribute("nbrlignes" ) %> ; i++)
{
<tr>
<td><INPUT TYPE='radio' NAME="choix" VALUE=<%= (String)request.getAttribute("choix" ) %>></td>
<td><%= (String)request.getAttribute("nom" ) %></td>
<td><%= (String)request.getAttribute("prenom" ) %></td>
<td><%= (String)request.getAttribute("telfixe" ) %></td>
<td><%= (String)request.getAttribute("telport" ) %></td>
<td><%= (String)request.getAttribute("mail" ) %></td>
<td><%= (String)request.getAttribute("choix" ) %></td>
</tr>
}
%>
 
Le probleme est que ce code ne fonctionne pas. Je ne sais pas si mettre du code html dans du java peut se faire mais ça fait une semaine que je suis la dessus et j'en ai mar je trouve pas .... !
 
Si quelqu'un pourrais me dire comment il fait ou me mettre sur la voie ce serais sympa !
 
merci d'avance
 
bye

Reply

Marsh Posté le 02-05-2007 à 14:10:46   

Reply

Marsh Posté le 02-05-2007 à 14:24:34    

tu pourrais pas le faire en JSTL ?
 

Code :
  1. <c:forEach var="personne" items="${listePersonnes}" varStatus="boucle">
  2. <tr>
  3.  <td><c:out value="${personne.nom}" /></td>
  4.  <td><c:out value="${personne.prenom}"/></td>
  5.  <td><c:out value="${personne.telfixe}" /></td>
  6.  <td><c:out value="${personne.telport}" /></td>
  7.  <td><c:out value="${personne.mail}"/></td>
  8.  <td><c:out value="${personne.choix}"/></td>
  9. </tr>
  10. </c:forEach>

Reply

Marsh Posté le 02-05-2007 à 15:04:11    

c'est le bordel dans tes balises j'ai l'impression, non ?
T'ouvres <% dans le for alors qu'il est déjà ouvert au dessus...

Reply

Marsh Posté le 02-05-2007 à 15:32:54    

et tu les fermes pas après ton accollade du for...

 

t'aurais pas plein d'erreurs de compil' des fois ?

Code :
  1. <%
  2. for (i= 0 ; i < Integer.parseInt(request.getAttribute("nbrlignes" )) ; i++)
  3. {%>
  4. <tr>
  5. <td><INPUT TYPE="radio" NAME="choix" VALUE="<%= (String)request.getAttribute("choix" ) %>"></td>
  6. <td><%= (String)request.getAttribute("nom" ) %></td>
  7. <td><%= (String)request.getAttribute("prenom" ) %></td>
  8. <td><%= (String)request.getAttribute("telfixe" ) %></td>
  9. <td><%= (String)request.getAttribute("telport" ) %></td>
  10. <td><%= (String)request.getAttribute("mail" ) %></td>
  11. <td><%= (String)request.getAttribute("choix" ) %></td>
  12. </tr>
  13. <%
  14. }
  15. %>
 

edit : en réalité, il faut juste que tu revois la syntaxe des JSP, et que tu comprennes la logique de fonctionnement, je suis d'accord qu'au début, c'est pas forcément évident.


Message édité par brisssou le 02-05-2007 à 15:37:12

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 02-05-2007 à 15:53:37    

voila j'ai refait le code c mieux non ?
 

Code :
  1. <% for (int i= 0 ; i < (int)request.getAttribute("nbrlignes" ) ; i++)
  2. { %>
  3. <tr>
  4. <td><INPUT TYPE='radio' NAME="choix" VALUE=<%= (String)request.getAttribute("choix" ) %>></td>
  5. <td><%= (String)request.getAttribute("nom" ) %></td>
  6. <td><%= (String)request.getAttribute("prenom" ) %></td>
  7. <td><%= (String)request.getAttribute("telfixe" ) %></td>
  8. <td><%= (String)request.getAttribute("telport" ) %></td>
  9. <td><%= (String)request.getAttribute("mail" ) %></td>
  10. <td><%= (String)request.getAttribute("choix" ) %></td>
  11. </tr>
  12. <% } %>


 
ça ressemble à ce que tu as mis ci dessus brissou
 
mais le probleme maintenant est qu'il me met :
 
Cannot cast from Object to int
 
alors que je lui envoie bien un int dans le .java :
 

Code :
  1. int nombreLignes = rs.getRow();
  2. req.setAttribute("nbrlignes", nombreLignes);


 
 
 
 
et je recupere bien un int aussi ... je comprends pas .il se transforme en objet pour le transfert ou koi ?
 
merci d'avance !
 
@tt


Message édité par kakou92 le 02-05-2007 à 15:56:53
Reply

Marsh Posté le 02-05-2007 à 16:01:09    

bha ton .java doit pas compiler non plus... dans request, tu mets des Object, or int est un type natif, et donc pas un objet, quoi que je crois que ça a changé avec des versions un peu plus up to date que la 1.4 que j'utilise...
 
donc, dans ta jsp, c'est peut-être simplement ((Integer)request.getAttribute("machain" )).intValue()


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 02-05-2007 à 16:02:45    

est-ce que tu te rends compte également que tu vas simplement écrire nbRows fois la même chose dans ton tableau ? Relis la doc de setAttribute : quand tu fais un set, tu fais un set.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 02-05-2007 à 16:10:41    

-YES ! ça marche avec ((Integer)request.getAttribute("nbrlignes" )).intValue() et donc j'ai bien mes 4 lignes (correspondants aux 4 lignes de la base de données mais les 4 sont identiques ... normal ! maintenant il faudrais que je lui envoie des objets qui contiennent toutes les données à envoyer pour chaque ligne ?  
 
merci !  
 
bye

Reply

Marsh Posté le 02-05-2007 à 16:16:32    

tu te fais une liste qui contient des beans qui eux-même correspondant à tes lignes de db (je risque de me faire basher là, mais tant pis)


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 02-05-2007 à 16:21:31    

basher ?  
 
comment j'utilise des beans ? désolé mais j'en ai jamais fait avant :s !  
 
merci d'avance  
 
@tt

Reply

Marsh Posté le 02-05-2007 à 16:21:31   

Reply

Marsh Posté le 02-05-2007 à 16:24:26    

un bean, ici, c'est juste une classe simple, avec des attributs qui correspondent aux champs de ta table.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 02-05-2007 à 16:31:12    

et ça ressemble a koi ? vraiment désolé :s  
 
en fait ce qu'il faudrais c'est qu'avant que je sorte de mon .java j'ai recup toutes mes données et que je les aies mises de coté mais je vois pas comment faire :s  
 
merci @tt
 
PS: que signifie basher ? lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed