Bonjour,
Je développe une application en J2EE en utilisant le framework struts 1.3 qui tout au début permet de se logger en tant que admin, utilisateur ou client. J'ai commencé à implémenter les tiles dans mon programme et ce afin d'optimiser les lignes de codes en réutilisant les jsp des header, footer et menu à chaque fois.
Voici donc mes jsp:
template.jsp
header.jsp
footer.jsp
menu.jsp
index.jsp
login.jsp =>body 1
adminWindow.jsp =>body 2
Pour l'instant, j'arrive à avoir ma premère page niquel avec l'interface, le body login.jsp. Cependant, dès que j'essaie de me logger en tant que admin j'ai cette erreur :
La page d'acceuil de mon application est index.jsp, elle appelle le body login.jspjavax.servlet.ServletException: java.lang.IllegalArgumentException: Le chemin templateAdmin ne commence pas par le caractère "/"
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Voici le code de index.jsp :
A présent voici le code de mon tiles-def.xml :
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 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="/tags/struts-html" prefix="html"%> <%@ taglib uri="/tags/struts-tiles" prefix="tiles"%> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Index</title> </head> <body> <tiles:insert definition="templateIndex" flush="true" /> </body> </html>
code du struts config.xml :
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 <tiles-definitions> <definition name="templateIndex" path="/layouts/template.jsp"> <put name="header" value="/common/header.jsp" /> <put name="menu" value="/common/menu.jsp" /> <put name="body" value="/pages/login.jsp" /> <put name="footer" value="/common/footer.jsp" /> </definition> <!-- ======================================================= --> <definition name="templateAdmin" extends="templateIndex"> <put name="body" value="/pages/adminWindow.jsp" /> </definition> </tiles-definitions>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <action-mappings> .... <action path="/login" type="controller.LoginAction" name="userForm" scope="request" validate="true"> <forward name="adminWindow" path="templateAdmin" /> <forward name="error" path="/pages/error.jsp" /> </action> .... </action-mappings>
Une partie du code de mon LoginAction.java
Je ne comprends pas l'erreur vu qu'il n'y a pas de caractère "/" dans mon templateAdmin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 .... if (type.equals("Admin")) { System.out.println("call admin "); return mapping.findForward("adminWindow"); ....
Pouvez-vous m'aider svp ?
Merci !
Partager