Bonjour,
j'ai une application Struts2, mes pages jsp sont dans un repertoire /jsp/ présent dans la racine du projet tout comme mes fichiers css dans un repertoire /css/.
Je n'arrive pas à gérer le fait que la plupart du temps les pages soient affichées à l'utilisateur via des actions mais pas seulement : cas d'une jsp liée directement à une autre. Dans le premier cas le 'flot' reste dans la racine et peut dans cette page faire appel à un fichier css situé dans le repertoire /css/.
Dans le second cas le 'flot' se retrouve dans le repertoire /jsp/ et la page ne trouve donc pas les fichiers css car elle ne 'voit' pas le repertoire /css/ elle va chercher à /jsp/css/.
Si je change alors le href du css de 'css/xxx.css' en '../css/xxx.css' c'est le premier cas qui ne fonctionne plus.
extrait d'une des pages avec le lien vers le css :
dans chaque page il y a ce head et puis aussi l'inclusion d'un menu navigation qui fait référence à des pages statiques de présentation qui ne sont donc pas liées à des actions struts2 mais aimeraient bénéficier du css
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <head> <title><s:text name="app.titreVigieNature" /></title> <meta http-equiv="content-type" content="text/html; charset="UTF-8" /> <link rel="shortcut icon" href="images/02deco/favicon.ico"/> <link rel="icon" type="image/gif" href="images/02deco/favicon.gif" /> <link rel='StyleSheet' type='text/css' href="css/vigieNature.css"/> <s:if test="%{#session.CURRENT_PROJECT != null}"> <link rel='StyleSheet' type='text/css' href="css/<s:property value="#session.CURRENT_PROJECT.cssLink" />" /></s:if> </head>
voici un extrait du menu navigation :
quand je suis sur ma page d'accueil dont l'affichage passe par une action, j'ai bien le css, si je clique sur protocole papillons, je n'ai plus de css et si je clique une fois encore sur protocole papillons alors je n'ai même plus de page car il cherche alors à l'adresse '/jsp/jsp/protocolePapillons.jsp'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <div id="menuwrapper"> <ul id="p7menubar"> <li> <a class="trigger" href="Accueil.action"><s:text name="app.menuAccueil"/></a> </li> <li> <a class="trigger" ><s:text name="app.menuProtocole"/></a> <ul> <li><a href="jsp/protocolePapillons.jsp"><s:text name="app.menuProtocolePap" /></a></li> <li><a href="jsp/protocoleEscargots.jsp"><s:text name="app.menuProtocoleEsc" /></a></li> <li><a href="jsp/protocoleBourdons.jsp"><s:text name="app.menuProtocoleBour" /></a></li> <li><a href="jsp/protocoleColeos.jsp"><s:text name="app.menuProtocoleColeos" /></a></li>
voici un extrait de mon fichier struts.xml :
doit-je vraiment mettre toutes mes jsp derrière des actions?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <action name="Accueil"> <result>/jsp/Accueil.jsp</result> </action> <action name="Loguer_Utilisateur" class="fr.mnhn.obj.struts2.actions.UserAction" method="login"> <result name="input">/jsp/Accueil.jsp</result> <result name="success" type="redirectAction">Espace_Utilisateur</result> </action> <action name="Deloguer_Utilisateur" class="fr.mnhn.obj.struts2.actions.UserAction" method="logout"> <result name="success">/jsp/Logout.jsp</result> </action> <action name="Trouver_Utilisateur" class="fr.mnhn.obj.struts2.actions.UserAction" method="trouver"> <result name="input">/jsp/EspaceAdministrateur.jsp</result> <result name="success" type="redirectAction">Editer_Utilisateur</result> </action> <action name="Editer_Utilisateur" class="fr.mnhn.obj.struts2.actions.UserAction" method="editer"> <result name="success">/jsp/EditerUtilisateur.jsp</result> </action>
Merci,
Olivier
Partager