[resolue] impossible d'afficher des images sur un spring MVC

impossible d'afficher des images sur un spring MVC [resolue] - Java - Programmation

Marsh Posté le 17-01-2012 à 01:21:52    

[solution sur le post #15 de la page 1]
plop,
 
je voudrais faire un site qui utilise SPRING en MVC et comme le titre l'indique je n'arrive pas a afficher d'image.
j'ai tester les 2 premiere page de google, rien ne marche ><
 
actuellement j'ai rajouter a mon dispatcher

Code :
  1. <mvc:annotation-driven />
  2. <mvc:resources location="/images/" mapping="/images/**" />


 
et dans index.html j'ai mis :

Code :
  1. <img src="<c:url value="/resources/img/image.jpg" />" />


 
voyez par vous meme :
http://img546.imageshack.us/img546/1059/arbo.jpg
 
Web.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ [...] .xsd&#034; id="WebApp_ID" version="2.5">
  3.   <display-name>SpringTestMVC</display-name>
  4.  
  5.   <welcome-file-list>
  6.     <welcome-file>index.html</welcome-file>
  7.   </welcome-file-list>
  8.   <servlet>
  9.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  10.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11.     <init-param>
  12.       <param-name>contextConfigLocation</param-name>
  13.       <param-value>
  14.    /WEB-INF/servlet-context.xml
  15.   </param-value>
  16.     </init-param>
  17.     <load-on-startup>1</load-on-startup>
  18.   </servlet>
  19.  
  20.   <servlet-mapping>
  21.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  22.     <url-pattern>/url/*</url-pattern>
  23.      
  24.   </servlet-mapping>
  25.    
  26.    
  27. </web-app>


 
servlet-context.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/sch [...] vc-3.0.xsd
  7.  http://www.springframework.org/schema/beans http://www.springframework.org/sch [...] ns-3.0.xsd
  8.  http://www.springframework.org/schema/context http://www.springframework.org/sch [...] &#034;&gt;
  9. <mvc:annotation-driven />
  10. <mvc:resources location="/images/" mapping="/images/**" />
  11.  
  12. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
  13.  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  14.  <property name="prefix">
  15.   <value>/WEB-INF/jsp/</value>
  16.  </property>
  17.  <property name="suffix">
  18.   <value>.jsp</value>
  19.  </property>
  20. </bean>  
  21.  
  22. <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
  23.  
  24. </beans>


 
index.html

Code :
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <!-- En-tête de la page -->
  5.         <meta charset="utf-8" />
  6.         <title>Projet J2EE index</title>
  7.     </head>
  8.     <body>
  9.         <!-- Corps de la page -->
  10.         <!-- barre de navigation -->
  11.         <p><a href="index.html">Projet J2EE</a></p>
  12.         <p><a href="http://www.siteduzero.com">Livres</a> <a href="http://www.siteduzero.com">Revues</a> <a href="http://www.siteduzero.com">CDs</a> <a href="http://www.siteduzero.com">CDROMs</a> <a href="http://www.siteduzero.com">Clients</a></p>
  13.         <!-- bloc principal -->
  14.          <!-- barre de gauche -->
  15.          <p>Ajouter du contenue</p>
  16.          <p>Louer du contenue</p>
  17.          <p>Restituer du contenue</p>
  18.          <!-- bloc milieu -->
  19.        
  20.          <img src="<c:url value="/resources/img/image.jpg" />" />
  21.        
  22.          <p>Bienvenue sur le votre espace de gestion, cet interface vous permet de rajouter des client ainsi que du contenue,
  23.          et de louer ou reprendre du contenue</p>
  24.          <p>Utilisez la barre de navigation en haut de votre fenetre pour acceder a ces services</p>
  25.          <!-- barre de droite -->
  26.          <p>Ici se trouve votre historique des 10 dernieres operation et vous permet de les annuler rapidement en cas d'erreur</p>
  27.     </body>
  28. </html>


 
j'utilise Spring 3.0.5
 
des idées?
merci =D


Message édité par sliders_alpha le 19-01-2012 à 23:43:02
Reply

Marsh Posté le 17-01-2012 à 01:21:52   

Reply

Marsh Posté le 17-01-2012 à 09:12:37    

Code :
  1. <mvc:resources location="/images/" mapping="/images/**" />

?
plutôt

Code :
  1. <mvc:resources location="/resources/img/" mapping="/images/**" />


 
et donc

Code :
  1. <img src="<c:url value="/images/image.jpg" />" />


 
non ?


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

Marsh Posté le 17-01-2012 à 22:56:06    

oups, une erreur de copier/coller (j'avais esseyer plusieur endroit)
neanmoins apres modif, ça ne marche toujours pas :/

Reply

Marsh Posté le 17-01-2012 à 23:12:22    

et avec :

Code :
  1. <c:set var="rootUrl" value="${pageContext.request.contextPath}"/>
  2. <img src="${rootUrl}/images/image.jpg" />


 
t'as regardé le html généré, histoire de voir si ça pointe où tu l'attends ?


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

Marsh Posté le 18-01-2012 à 07:07:37    

oui a chaque fois l'HTML genéré contient  

Code :
  1. <img src="<c:url value="/images/image.jpg" />" />


ou  

Code :
  1. <c:set var="rootUrl" value="${pageContext.request.contextPath}"/>
  2. <img src="${rootUrl}/images/image.jpg" />

 
dans le deuxiemme cas.
 
j'ai plusieurs idée du problemme :
c:set n'est pas reconnu (eclipse me le dit a sa gauche avec un /!\)
 
ça ne serait pas car la page est de type html et il faudrais qu'elle soit de type jsp?
 
ou bien car la page n'a pas de controlleur?
mais je n'ai jamais vu dans un MVC la page index ayant un controlleur, dans tous mes cours, la page index est juste une page html qui renvoi ensuite sur le controlleur d'autre page.
 
=====
j'ai esseyer de passer la page en jsp
et j'ai "javax.servlet.servletException" cannot be resolved as a type que lka ligne c:url
et "javax.servlet.jsp.jspservletException sur la deuxiemme
 

Code :
  1. <%@page contentType="text/html;charset=UTF-8"%>
  2. <%@page pageEncoding="UTF-8"%>
  3. <%@ page session="false" %>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  6. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  7. <html>
  8.     <head>
  9.         <!-- En-tête de la page -->
  10.         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  11.         <title>Projet J2EE index</title>
  12.     </head>
  13.     <body>
  14.         <!-- Corps de la page -->
  15.         <!-- barre de navigation -->
  16.         <p><a href="index.html">Projet J2EE</a></p>
  17.         <p><a href="http://www.siteduzero.com">Livres</a> <a href="http://www.siteduzero.com">Revues</a> <a href="http://www.siteduzero.com">CDs</a> <a href="http://www.siteduzero.com">CDROMs</a> <a href="http://www.siteduzero.com">Clients</a></p>
  18.         <!-- bloc principal -->
  19.          <!-- barre de gauche -->
  20.          <p>Ajouter du contenue</p>
  21.          <p>Louer du contenue</p>
  22.          <p>Restituer du contenue</p>
  23.          <!-- bloc milieu -->
  24.        
  25.          <c:set var="rootUrl" value="${pageContext.request.contextPath}"/>
  26.   <img src="${rootUrl}/images/image.jpg" />
  27.        
  28.          <p>Bienvenue sur le votre espace de gestion, cet interface vous permet de rajouter des client ainsi que du contenue,
  29.          et de louer ou reprendre du contenue</p>
  30.          <p>Utilisez la barre de navigation en haut de votre fenetre pour acceder a ces services</p>
  31.          <!-- barre de droite -->
  32.          <p>Ici se trouve votre historique des 10 dernieres operation et vous permet de les annuler rapidement en cas d'erreur</p>
  33.     </body>
  34. </html>


Message édité par sliders_alpha le 18-01-2012 à 07:12:35
Reply

Marsh Posté le 18-01-2012 à 08:53:07    

c'est un projet maven ?
t'as ajouté les jstl dans tes dépendances ?

 

t'as linkés les tld en cas d'application J2EE <2.4 ? (regarde ici : http://www.abbeyworkshop.com/howto [...] index.html )

 

y a aussi une instruction à mettre en en-tête de (toutes les) page pour les webapp <2.3 :
<%@ page isELIgnored="false" %>


Message édité par brisssou le 18-01-2012 à 09:04:41

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

Marsh Posté le 18-01-2012 à 13:07:57    

Citation :


c'est un projet maven ?


 
jamais entendu parler =o
 

Citation :


t'as ajouté les jstl dans tes dépendances ?  


 
non, dans mon cours on ne fait pas ça, j'ai googeliser et donc apparament je devrais rajouter un fichier pom.xml et mettre 4blocs a l'interieur.
 

Citation :


t'as linkés les tld en cas d'application J2EE <2.4 ? (regarde ici : http://www.abbeyworkshop.com/howto [...] index.html )


Normalement oui, j'ai fait la meme chose que sur cette video, la creation de projet automatique s'occupe de tout.
http://www.youtube.com/watch?v=3a6ZQ4RmMzc
et j'ai verifier j'ai bien un xml schema lié au web.xml donc forcement un 2.4
 
je testerais ça ce soir

Reply

Marsh Posté le 18-01-2012 à 13:52:40    

oui, mais si tu mets pas le jar des jstl dans ton war, tu n'auras rien pour les évaluer


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

Marsh Posté le 18-01-2012 à 20:39:51    

donc donc, je n'utilise pas maven et je n'ai donc pas de fichier pom.xml donc pas de dependance a injecter.
 
j'ai ajouter tout les .jar du dossier lib dans les java buldpath

Citation :


Now all all the libraries to "Java Build Path". Right click on your project explorer and then select properties. Then select "Java Build Path" --> Libraries and then click on the "Add JARs" button. And add all the libraries to Java Build Path.


 
et maintenant j'ai une erreur 404 sur http://localhost:8080/SpringTestMVC/index.jsp
 
au final actuellement j'ai
 
web.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ [...] .xsd&#034; id="WebApp_ID" version="2.5">
  3.   <display-name>SpringTestMVC</display-name>
  4.  
  5.   <welcome-file-list>
  6.     <welcome-file>index.jsp</welcome-file>
  7.   </welcome-file-list>
  8.   <servlet>
  9.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  10.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11.     <init-param>
  12.       <param-name>contextConfigLocation</param-name>
  13.       <param-value>
  14.    /WEB-INF/servlet-context.xml
  15.   </param-value>
  16.     </init-param>
  17.     <load-on-startup>1</load-on-startup>
  18.   </servlet>
  19.  
  20.   <servlet-mapping>
  21.     <servlet-name>Spring MVC DispatcherServlet</servlet-name>
  22.     <url-pattern>/url/*</url-pattern>
  23.   </servlet-mapping>
  24.    
  25.    
  26. </web-app>


 
servlet-context.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/sch [...] vc-3.0.xsd
  7.  http://www.springframework.org/schema/beans http://www.springframework.org/sch [...] ns-3.0.xsd
  8.  http://www.springframework.org/schema/context http://www.springframework.org/sch [...] &#034;&gt;
  9. <mvc:annotation-driven />
  10. <mvc:resources location="/resources/img/" mapping="/images/**" />
  11.  
  12. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
  13.  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  14.  <property name="prefix">
  15.   <value>/WEB-INF/jsp/</value>
  16.  </property>
  17.  <property name="suffix">
  18.   <value>.jsp</value>
  19.  </property>
  20. </bean>  
  21.  
  22. <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
  23.  
  24. </beans>


 
index.jsp

Code :
  1. <%@page contentType="text/html;charset=UTF-8"%>
  2. <%@page pageEncoding="UTF-8"%>
  3. <%@ page isELIgnored="false" %>
  4. <%@ page session="false" %>
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  6. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  7. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  8. <html>
  9.     <head>
  10.         <!-- En-tête de la page -->
  11.         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  12.         <title>Projet J2EE index</title>
  13.     </head>
  14.     <body>
  15.         <!-- Corps de la page -->
  16.         <!-- barre de navigation -->
  17.         <p><a href="index.html">Projet J2EE</a></p>
  18.         <p><a href="http://www.siteduzero.com">Livres</a> <a href="http://www.siteduzero.com">Revues</a> <a href="http://www.siteduzero.com">CDs</a> <a href="http://www.siteduzero.com">CDROMs</a> <a href="http://www.siteduzero.com">Clients</a></p>
  19.         <!-- bloc principal -->
  20.          <!-- barre de gauche -->
  21.          <p>Ajouter du contenue</p>
  22.          <p>Louer du contenue</p>
  23.          <p>Restituer du contenue</p>
  24.          <!-- bloc milieu -->
  25.        
  26.          <c:set var="rootUrl" value="${pageContext.request.contextPath}"/>
  27.   <img src="${rootUrl}/images/image.jpg" />
  28.        
  29.          <p>Bienvenue sur le votre espace de gestion, cet interface vous permet de rajouter des client ainsi que du contenue,
  30.          et de louer ou reprendre du contenue</p>
  31.          <p>Utilisez la barre de navigation en haut de votre fenetre pour acceder a ces services</p>
  32.          <!-- barre de droite -->
  33.          <p>Ici se trouve votre historique des 10 dernieres operation et vous permet de les annuler rapidement en cas d'erreur</p>
  34.     </body>
  35. </html>


 
sachant que ces deux lignes :

Code :
  1. <c:set var="rootUrl" value="${pageContext.request.contextPath}"/>
  2.   <img src="${rootUrl}/images/image.jpg" />


 
sont marqué par une croix rouge sur eclipse.
 
ps : je n'ai pas de controlleur pour index.jsp, mais je ne pense pas que ça soit un problemme vu que je n'utilise aucune donnée stocké dans une classe java sur la page

Message cité 1 fois
Message édité par sliders_alpha le 18-01-2012 à 20:41:11
Reply

Marsh Posté le 18-01-2012 à 22:43:21    

sliders_alpha a écrit :

donc donc, je n'utilise pas maven et je n'ai donc pas de fichier pom.xml donc pas de dependance a injecter.


 
je vois pas le rapport.
 
si tu n'utilises pas maven, tu dois donc mettre toi même ce jar à la main dans WEB-IF/lib, sinon, pas de jstl.
Si tu vires le jar de spring, pas de spring, bha là pareil, si tu n'as pas le jar des jstl, pas de jstl.


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

Marsh Posté le 18-01-2012 à 22:43:21   

Reply

Marsh Posté le 18-01-2012 à 23:02:25    

brisssou a écrit :


 
je vois pas le rapport.
 
si tu n'utilises pas maven, tu dois donc mettre toi même ce jar à la main dans WEB-IF/lib, sinon, pas de jstl.
Si tu vires le jar de spring, pas de spring, bha là pareil, si tu n'as pas le jar des jstl, pas de jstl.


 
ha ba c'est moi qui avait mal compris ce qu'etais maven.
 
je pensais que mettre dans le war voulais dire mettre dans les build path.
(d'ailleur j'ai remarqué que tous les .jar que j'ai ajouté dans lib ont été automatiquement mis dans webapp des buildpath)
 
j'ai toute ces librairie la :
 
http://sliders.alpha.free.fr/MVC/lib.jpg
 
j'ai d'ailleur remarqué que tomcat6 a un problem avec log4
 
http://sliders.alpha.free.fr/MVC/log4j.jpg


Message édité par sliders_alpha le 18-01-2012 à 23:02:47
Reply

Marsh Posté le 18-01-2012 à 23:08:39    

tu as donc bien jst-1.2.jar dans ton WEB-INF/lib. étrange. j'ai plus d'idée là :D

 

log4j crie juste parce que tu ne l'as pas configuré.

 

essaie de déclarer les tld dans ton web-inf.xml :

Code :
  1. <taglib>
  2.  <taglib-uri>http://java.sun.com/jstl/c</taglib-uri>
  3.  <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
  4. </taglib>
  5. <taglib>
  6.  <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
  7.  <taglib-location>/WEB-INF/tlds/fn.tld</taglib-location>
  8. </taglib>
  9. <taglib>
  10.  <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
  11.  <taglib-location>/WEB-INF/tlds/fmt.tld</taglib-location>
  12. </taglib>

sans conviction...


Message édité par brisssou le 18-01-2012 à 23:10:47

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

Marsh Posté le 18-01-2012 à 23:46:49    

eclipse n'aime pas ce <taglib>^^
 
http://sliders.alpha.free.fr/MVC/taglib.jpg
 
bon j'en ai mare, demain j'irais voir mon prof referant java qu'il me donne des explication xD


Message édité par sliders_alpha le 18-01-2012 à 23:47:02
Reply

Marsh Posté le 19-01-2012 à 08:53:18    

t'es effectivement en 2.3, donc pas de tag lib...


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

Marsh Posté le 19-01-2012 à 18:20:00    

Well,
 
j'ai resolut le probleme....en changeant de machine!
avec le projet fait de la meme façon (la video),
les meme fichiers (.lib, xml, archive d'eclipse)
 
ça marche maintenant parfaitement.
 
Placer les images dans :

Code :
  1. WebContent
  2. ........resources
  3. .............img


 
Mettre dans servlet-context.

Code :
  1. <mvc:annotation-driven />


 
Et utiliser dans les pages ou on veut afficher des images.

Code :
  1. <img src="<c:url value="/resources/img/image.jpg" />" />


 
La page d'index doit etre en jsp et non html. ceci ne marche pas sur mon pc fixe mais sur mon portable, allez savoir pourquoi...
 
#EDIT
peut etre une piste : mon PC est en 64Bits, mon portable en 32Bits, peut etre que le problemme vient de la (du coup la version d'eclipse est differente)
 
merci de m'avoir d'avoir pris autant de temps pour m'aider =D


Message édité par sliders_alpha le 19-01-2012 à 23:41:15
Reply

Sujets relatifs:

Leave a Replay

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