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 :

javax.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)
La page d'acceuil de mon application est index.jsp, elle appelle le body login.jsp
Voici le code de index.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
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>
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
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 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
 
<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

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");
 
    ....
Je ne comprends pas l'erreur vu qu'il n'y a pas de caractère "/" dans mon templateAdmin.

Pouvez-vous m'aider svp ?

Merci !