[Struts 1.3][Tiles] Problème de forward vers un Tiles
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 :
Citation:
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:
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:
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:
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:
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 !