Salut a tous,

Je me suis mis il y a peu sur struts et tiles, avant j'ai fait enormement de jsp basique...et j'ai fais la chose suivante en utilisant struts + tiles:

Voila mon fichier tiles-definitions.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
 
<tiles-definitions>
 
	<definition name="annuaire.index" path="/layouts/layout.jsp">
		<put name="title" value="Annuaire des etudiants de I2A"/>
		<put name="left" value="/login.jsp"/>
		<put name="contents" value="/annuaire.jsp"/>
		<put name="bottom" value="/bottom.html"/>
	</definition>
 
	<definition name="annuaire.user.home" extends="annuaire.index">
		<put name="left" value="/home.jsp"/>
	</definition>
 
</tiles-definitions>
Voici par ailleurs le fichier 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
22
23
24
25
26
27
28
29
30
 
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
   <form-beans >
      <form-bean name="enterForm" type="org.apache.struts.action.DynaActionForm">
         <form-property name="password" type="java.lang.String" />
         <form-property name="username" type="java.lang.String" />
      </form-bean>
 
   </form-beans>
 
   <action-mappings>
      <action name="enterForm" path="/enter" scope="request"
         type="isl.annuaire.actions.EnterAction">
      <forward name="hello" path="annuaire.user.home"/>
      </action>
 
   </action-mappings>
   	<plug-in className="org.apache.struts.tiles.TilesPlugin" >
 
    	<!-- Path to XML definition file -->
    	<set-property property="definitions-config"
                      value="/WEB-INF/tiles-definitions.xml"/>
    	<!-- Set Module-awareness to true -->
    	<set-property property="moduleAware" value="true"/>
  	</plug-in>
 
</struts-config>
Le fichier de squelette dont se sert tiles

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
22
23
24
25
26
27
28
29
30
31
 
<jsp:root version="1.2"
           xmlns:jsp="http://java.sun.com/JSP/Page"
           xmlns:tiles="/WEB-INF/struts-tiles.tld"
           xmlns:html="/WEB-INF/struts-html.tld">
 
<jsp:directive.page contentType="text/html; charset=ISO-8859-1"/>
<html:html xhtml="true">
  <head>
  	<link href="layout.css" rel="stylesheet"/>
    <title><tiles:getAsString name="title"/></title>
  </head>
  <body>
    <!-- div de menu -->
    <div id="left">
      <tiles:insert attribute="left"/>
    </div>
 
    <!-- div principal de l'application -->
    <div id="contents">
      <tiles:insert attribute="contents"/>
    </div>
 
    <!-- le div du haut -->
    <div id="bottom">
      <tiles:insert attribute="bottom"/>
    </div>
  </body>
</html:html>
 
</jsp:root>
bon pour faire un peu court je vais juste mettre, la page login.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
21
 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:form action="/enter" method="post">
<table>
<th>Connection</th>
<tr>
 <td>Login</td>
 <td><html:text property="username" size="20"/></td>
</tr>
 
<tr>
 <td>Mot de passe</td>
 <td><html:text property="password" size="20"/></td>
</tr>
 
<tr>
 <td colspan="2"><html:submit property="submit" value="Identification"/></td>
</tr>
</html:form>
 
</table>
et enfin le code la servlet correspondant a l'action /enter le fichier se nomme EnterAction.java (je mets pas ici les imports)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public class EnterAction extends Action {
 
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
		HttpServletResponse response) {
		DynaActionForm enterForm = (DynaActionForm) form;
		System.out.println("hellooooooooooo");
		return mapping.findForward("hello");
	}
 
}
et dans ma page index.jsp il y a juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="annuaire.index" flush="true"/>
------------------------------------------------------------------------------------------------------

Alors quand je tape http://localhost:8080/appli, il m'affiche bien le formulaire dynamique plus le contenu des deux autres pages sur la page d'accueil.

Par contre si j'appuie sur le bouton "Identification" il me renvoie une page blanche et l'url dans le navigateur qui s'affiche est http://localhost:8080/appli/enter.do

Normalement je m'attendais a ce qu'il m'affiche a la place du formulaire le contenu de la page home.jsp qui ne contient que ce simple code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<h1>Bonjour page d'accueil</h1>
Si quelqu'un connait comment regler ce probleme merci d'avance