Problème lié à JSTL

Problème lié à JSTL - Java - Programmation

Marsh Posté le 24-07-2006 à 09:59:11    

Je suis débutant avec JSTL (j'ai commencé ce matin  :) )
J'ai lu le tuto ici :http://www.javaworld.com/javaworld [...] tl-p3.html
 
J'ai bien mis mes 2 lib dans $tomcat/common/lib
J'ai ajouté  

Code :
  1. <taglib>
  2.      <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
  3.      <taglib-location>/WEB-INF/c.tld</taglib-location>
  4.    </taglib>


Dans mon web.xml
J'ai ajouté c.tld dans WEB-INF/
Et mon fichier jsp commence par :

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
  2. <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
  3. <%@ include file="../../../html/Commun/CnModelePageFrameHaut.inc" %>


 
Dans la suite de mon fichier JSP, j'ai :

Code :
  1. <input type="text" id="sNomOBJS" name="sNomOBJS" value="${data.nom}" maxlength="25" size="25"  style="width:200px"/>


 
J'ai un bean "data" dans ma session.
 
Lorsque j'affiche sa donnée, j'obtiens la valeur : ${data.nom} à la place de la valeur réelle.
 
Qu'est ce que j'ai oublié pour que tout fonctionne correctement ?
Merci de votre aide ;-)

Reply

Marsh Posté le 24-07-2006 à 09:59:11   

Reply

Marsh Posté le 24-07-2006 à 10:11:46    

${machin} c'est du EL (chais plus ce que ça veut dire :-/)
 
pour utiliser JSTL, c'est des tag du genre <c:blabalbla/>
 
donc pour ton exemple :

Code :
  1. <input type="text" id="sNomOBJS" name="sNomOBJS" value="<c:out name="data" property="nom"/>" maxlength="25" size="25"  style="width:200px"/>


 
ou un truc du style


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

Marsh Posté le 24-07-2006 à 10:17:42    

Finalement, j'ai trouvé.
J'avais mal déclaré ma web-app.
A titre d'information voici mon web.xml :  

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  5. version="2.4">
  6.   .........
  7. </web-app>


 
Et avec ${data.nom} ça marche trés bien aussi ;-)
Je ne sais pas si c'est mieux mais ça fonctionne...

Reply

Marsh Posté le 24-07-2006 à 11:14:02    

Dans ma request, j'ai inséré un attribut cheminot de type ArrayList.
Cette ArrayList contient des objets du type ListeCheminot composé de 2 attributs String : nCP et nom.
 
En utilisant :  

Code :
  1. <c:forEach var="token" items="cheminots">
  2.     <option value="${token.nCP}" <c:if test="${token.nCP == data.cpResponsable}">selected="selected"</c:if> >${token.nom}</option>
  3. </c:forEach>


 
Comment puis-je récupérer les 2 attributs nCP et nom ? Car l'exemple que j'ai donné ne fonctionne pas bien évidemment....  :pfff:

Reply

Marsh Posté le 24-07-2006 à 11:18:37    

brisssou a écrit :

${machin} c'est du EL (chais plus ce que ça veut dire :-/)


Expression Language


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-07-2006 à 11:19:50    

brasseld a écrit :

Dans ma request, j'ai inséré un attribut cheminot de type ArrayList.
Cette ArrayList contient des objets du type ListeCheminot composé de 2 attributs String : nCP et nom.
 
En utilisant :  

Code :
  1. <c:forEach var="token" items="cheminots">
  2.     <option value="${token.nCP}" <c:if test="${token.nCP == data.cpResponsable}">selected="selected"</c:if> >${token.nom}</option>
  3. </c:forEach>


 
Comment puis-je récupérer les 2 attributs nCP et nom ? Car l'exemple que j'ai donné ne fonctionne pas bien évidemment....  :pfff:

je suppose que ${token.nom} marche bien mais pas ${token.nCP}, probablement un probleme de nommage du getter associé ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-07-2006 à 11:23:05    

Bof, nan, j'ai changé avec ton indication et j'ai toujours cette erreur :  
javax.servlet.ServletException: Unable to find a value for "ncp" in object of class "java.lang.String" using operator "."
 
J'ai bien le droit de faire ce que j'ai expliqué au moins ?
 
edit : ça fonctionne pas non plus avec token.nom ;-)


Message édité par brasseld le 24-07-2006 à 11:26:05
Reply

Marsh Posté le 24-07-2006 à 11:28:30    

c'est ou que ça pete? la condition du if ou l'affichage de la prop?
essaie d'isoler le probleme.


Message édité par the real moins moins le 24-07-2006 à 11:28:57

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-07-2006 à 11:32:20    

Une boucle toute simple du type :

Code :
  1. <c:forEach var="token" items="cheminots">
  2.      ${token.nom}
  3. </c:forEach>


ne fonctionne pas non plus.
 
Je répéte, est ce que j'ai bien le droit de manipuler les données comme ça ?

Reply

Marsh Posté le 24-07-2006 à 11:34:25    

ça j'en sais rien alors. lis la doc [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-07-2006 à 11:34:25   

Reply

Marsh Posté le 24-07-2006 à 11:39:19    

Si il y avait une bonne doc qui explique correctement les itérations...
A part sur javaworld qui est concis mais explicite aprés y'a pas grand chose...

Reply

Marsh Posté le 24-07-2006 à 11:50:00    

Bon, je ne sais pas vraiment pourquoi, mais ceci fonctionne :  

Code :
  1. <c:forEach var="cheminot" items="${requestScope['cheminots']}">
  2.     <option value="${cheminot.ncp}" <c:if test="${cheminot.ncp == data.cpResponsable}">selected="selected"</c:if> >${cheminot.nom}</option>
  3. </c:forEach>


 
J'ai juste ajouté le requestScope.... Si quelqu'un a des explications, je suis preneur ;-)

Reply

Marsh Posté le 24-07-2006 à 11:52:07    

tu as aussi changé la syntaxe de ${token.nCP} vers ${cheminot.ncp}...


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

Marsh Posté le 24-07-2006 à 11:57:05    

ouais mais je viens d'essayer avec token et ça fonctionne aussi...
donc le requestScope devait être manquant.

Reply

Marsh Posté le 24-07-2006 à 13:40:20    

c'est pas token qui est différent, mais nCP et ncp


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

Sujets relatifs:

Leave a Replay

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