Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java
Développement Web en Java Forum d'entraide sur les technologies Web de Java (JSP/Servlets, Portlets, Applets, frameworks Web, etc.) Avant de poster -> FAQ Java EE
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/10/2012, 13h45   #1
janyoura
Membre confirmé
 
Avatar de janyoura
 
Femme
étudiante ingénierie informatique
Inscription : mars 2012
Messages : 294
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : étudiante ingénierie informatique

Informations forums :
Inscription : mars 2012
Messages : 294
Points : 214
Points : 214
Par défaut Récupération d'un lien dans la base de données

Salut, j'ai besoin de récupérer un lien à partir de ma base données mais je n'arrive pas à l'insérer correctement dans ma (url) page jsp de façon qu'il sera affiché comme un lien. voiçi le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%FormationDAO cd=new FormationDAOHibernate(); 
List l1=cd.findAll();
FormationServices fserv=new FormationServices();
 for(int i=0;i<l1.size();i++)
 {
Formation c1=fserv.getFormation(i);
String plan;
request.setAttribute("c1", c1);
plan = c1.getPlan();
 out.print("<tr class='second'><td class='text' style='width: 10%;'><div class=''>"+c1.getTitre()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getThème()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getFormateur()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getPrix_cl()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getPrix_gpe()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getDate_deb()+"</div></td><td class='text' style='width: 10%;'><div class=''>"+c1.getDurée()+"</div></td></tr>");
out.print(""<c:url value="${c1.plan }" var="plan"/>"");
}
 
%>
le but du code est d'afficher les détails de chaque formation. j'ai un problème dans l'affichage du "plan" qui est enregistré dans ma base comme un lien exemple: "/plan_jee/index.html". comment écrire correctement ce bout de code:
Code :
out.print(""<c:url value="${c1.plan }" var="plan"/>"");
Merci pour votre aide.
NB: débutant
__________________
"Scientists dream about doing great things. Engineers do them.”

La réussite après tant de travail est un sentiment à vivre

Si ton message est résolu, il y a un bouton qui est fait pour ça :
Il se trouve tout en bas de la conversation !

N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant
janyoura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2012, 11h52   #2
karbos
Membre confirmé
 
Avatar de karbos
 
Inscription : novembre 2008
Messages : 152
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 152
Points : 219
Points : 219
Citation:
Envoyé par janyoura Voir le message
comment écrire correctement ce bout de code:
Code :
out.print(""<c:url value="${c1.plan }" var="plan"/>"");
Il faut échapper les guillemets :
Code :
out.print("<c:url value=\"${c1.plan }\" var=\"plan\"/>");
karbos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2012, 14h02   #3
fxrobin
Membre Expert
 
Avatar de fxrobin
 
Homme
Formateur JAVA / XML
Inscription : novembre 2007
Messages : 849
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Formateur JAVA / XML
Secteur : Service public

Informations forums :
Inscription : novembre 2007
Messages : 849
Points : 1 294
Points : 1 294
Je crois que j'ai rarement vu une page JSP avec :
- du scriplet JAVA
- des out.print
- du JSTL

et c'est d'ailleurs à cause de cette "mixture" que tu te perds.

1 - la liste des formations, tu dois l'obtenir auprès un bean JSP (jsp:useBean) qui lui communiquera avec ta couche service et ta couche DAO. En aucun cas ta JSP doit avoir l'accès direct à de la DAO

2 - si tu utilises JSTL, alors utilise le à fond : PAS DE CODE JAVA dans une page JSTL.

3 - donc du coup ... ne pas faire de out.print et encore moins de for car le tag "c:forEach" est totalement fait pour cela.

Avec ces recommandations, ton code ressemblerait un peu à cela

à adapter bien sûr :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<%@ taglib uri='http://java.sun.com/jstl/core' prefix='c' %>
 
<jsp:useBean id='formationService' class='monpackage.FormationService' />
 
<c:forEach var="formation" items="${formationService.all}">
   <tr class='second'>
     <td class='text' style='width: 10%;'>
     <div class=''>${formation.titre}</div>
     </td>
     <!-- ... etc ... -->
     <td>
        <a href="<c:url value='${formation.plan }'">Lien</a>
     </td>   
</c:forEach>
et enfin une classe "FormationService" qui accède à la partie DAO (j'ai d'ailleurs du mal à comprendre la tienne) :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
package monpackage;
 
public class FormationService
{
   public List <Formation> getAll()
   {
     FormationDAO formationDao=new FormationDAO(); 
     return formationDao.findAll();
   }
}


Enfin, si je dois commenter purement ton code :

tu génères un lien "dans un tableau", mais même pas dans une cellule, ni même dans un tag A HREF ... donc il y a peu de chance que cela se termine en un lien dans l'une des cellules de ton tableau, en l'état.
fxrobin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web