Probleme d'image avec jsp [Fermé]

Signaler
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
-
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
-
Bonjour,

j'ai un problème d'affichage d'image dans mon application

voici l'arborescence du projet

projet-web {
- WebContent
-- index.jsp
-- login.xhtml
-META-INF
-pages
-reources
-- css
--- log.css
-- images
-templates
-WEBINF

}


Le problème est que mes images ne s'affiche pas, le projet se deploi et marche sauf que les images ne s'affiche pas même quant je fixe le style en dur dans les balises à l'interieur de la page.

Mon environnement Eclipse et JBoss 6

Merci de votre aide


6 réponses

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
1) pourquoi mélanger les fichiers xhtml et jsp ? Autant tout faire en jsp !
2) il faudrait voir ton code pour trouver l'erreur, mais je pense qu'il s'agit juste d'un problème de chemin relatif. Quand tu es dans index.jsp l'accès à une image devrait se faire par le chemin "../images/monImage.png"
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
1
Avant j'avais mis mes fichiers dans le fichier pages comme ceci Webcontent/resources/pages/login.xhtml ca marche sans probleme et j'appelais mes images comme ca

<body stye=" backgroung-image: url(${request.contextPath}/resources/images/espace.png;"


Mais dès que j'ai mis je le fichier login.jsp directement dans WebContent, c'est à cette instant que j'ai un problème d'affichage ...



Merci
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Je dirais que ${request.contextPath} pointe sur ton dossier WebContent, tu cherches donc l'image dans le dossier WebContent/resources/images, qui bien sûr n'existe pas...
Essayes avec
${request.contextPath}/../resources/images/espace.png


Remarque : pourquoi vouloir mettre ton style directement dans le code de la JSP alors que tu as un fichier CSS pour faire ça ?
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
1
Je viens de tester ta syntaxe tel que tu m'a proposé ${request.contextPath}/../resources/images/espace.png mais les images ne s'affiche pas toujours ..

pour la remarque:: j'vais des problèmes avec le fichier css qui ne m'affichais pas d'images et c'est à cause de ca que j'avais opter pour faire ca en dur dans le fichier JSP
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Je viens de me créer un petit projet pour tester et voici comment y arriver :

webapp
|_ WEB-INF
| |_ web.xml
|_ index.jsp
|_ images
|_ espace.png
|_ css
|_ style.css

Soit on met directement la mise en forme dans la JSP (déconseillé) :

index.jsp :

<html>
<head>
</head>
<body background="images/espace.png">
<h2>Hello World!</h2>
</body>
</html>

Soit on utilise la feuille de style css :

style.css :

body {
background-image:url(../images/espace.png);
}

index.jsp :

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
1
lorsque je le fais comme ca ca marche ,,

mais j'ai ajouter une authentification avec jaas (mode FORM),, en configurant le web.xml qui me redirige vers une page de connexion lorsque je lance mon appli...


c'est depuis là que j'ai eu cè probleme avec mes images qui ne s'affiche pas

avant <div style="background-image: url('${request.contextPath}/resources/images/espace.png')"
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Déjà tu n'as pas besoin des apostrophes dans ton paramètre url(), regarde comment j'ai fait dans le fichier css.

Ensuite, je ne comprends pas d'où vient ton
${request.contextPath}
et pourquoi tu voudrais que ça marche. Moi quand je testes (en JSP pur), la valeur que ça me renvoie c'est "${request.contextPath}", il n'y a aucune interprétation de ce champ... Par contre il est possible d'obtenir le contextPath en faisant
<%= request.getContextPath() %>
.

Cependant, le dossier "resources" n'est pas fait pour y mettre du contenu HTML comme des images ou le fichier CSS qui doivent être placées dans le dossier "webapp".
Le dossier resources est utilisé uniquement côté serveur, par exemple pour y mettre des fichiers .properties dont le contenu est récupérable à la génération de la JSP mais pas depuis le site web.

Donc tes images mets les ailleurs, en respectant l'architecture d'une application web :

resources
|_ i18n.properties
|_ i18n_FR.properties
|_ i18n_EN.properties
webapp
|_ WEB-INF
| |_ web.xml
|_ index.jsp
|_ images
| |_ espace.png
|_ css
|_ style.css

Avec par exemple dans ton code JSP :
<div style="background-image: url(images/espace.png)"></div>
Messages postés
262
Date d'inscription
mardi 17 octobre 2006
Statut
Membre
Dernière intervention
26 août 2015
1
je sécurise mon appli avec jaas avec le mode FORM que j'ai déclaré dans mon fichier web.xml

<lorsque que j'utilise pas authentification avec jaas,,, mes images apparaissent sans problème ....

mes avec jaas en modifiant le web.xml qui impose une rediction lors de la connexion, mes images ne sont plus pri en compte ...

voici un bout de code de mon web.xml

<login-config>
<auth-method>FORM</auth-method>
.......
<form-login-page>/login.jsp ou login.xhtml</form-login-page>
<form-error-page>/error.jsp ou error.xhtml</form-error-page>
</login-config>


Si j'utilise mon application sans utilise la sécurité avec jaas en mettant cette partie de conf en commentaire tout marche mes images s'affichent mais si j'active l'authentification dans le web.xml ,,, l'appli marchi mais l'affichage de l'image au niveau de la page qui redirige les balises suivantes:

<form-login-page>/login.jsp ou login.xhtml</form-login-page>
<form-error-page>/error.jsp ou error.xhtml</form-error-page>

NB: après authentification,, les autres pages marches correctement avec les images

donc ya que la page login.jsp ou login.xhtml et error.jsp qui ne prennet pas compte les images