<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://www.minetti.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Java%3AStruts%2C_Tiles_et_pages_JSP</id>
		<title>Java:Struts, Tiles et pages JSP - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://www.minetti.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Java%3AStruts%2C_Tiles_et_pages_JSP"/>
		<link rel="alternate" type="text/html" href="http://www.minetti.org/mediawiki/index.php?title=Java:Struts,_Tiles_et_pages_JSP&amp;action=history"/>
		<updated>2026-05-04T13:00:05Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://www.minetti.org/mediawiki/index.php?title=Java:Struts,_Tiles_et_pages_JSP&amp;diff=103&amp;oldid=prev</id>
		<title>Jp : Page créée avec « == But == * [http://struts.apache.org/ Struts] permet de mettre en œuvre l'architecture Modèle-Vue-Contrôleur (MVC) dans des... »</title>
		<link rel="alternate" type="text/html" href="http://www.minetti.org/mediawiki/index.php?title=Java:Struts,_Tiles_et_pages_JSP&amp;diff=103&amp;oldid=prev"/>
				<updated>2016-04-07T17:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « == But == * [http://struts.apache.org/ Struts] permet de mettre en œuvre l&amp;#039;architecture &lt;a href=&quot;/wiki/Design_pattern:Mod%C3%A8le-Vue-Contr%C3%B4leur&quot; title=&quot;Design pattern:Modèle-Vue-Contrôleur&quot;&gt;Modèle-Vue-Contrôleur (MVC)&lt;/a&gt; dans des... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== But ==&lt;br /&gt;
* [http://struts.apache.org/ Struts] permet de mettre en œuvre l'architecture [[Design pattern:Modèle-Vue-Contrôleur|Modèle-Vue-Contrôleur (MVC)]] dans des applications web.&lt;br /&gt;
* Les [http://java.sun.com/products/jsp/ JavaServer Pages] ou JSP est une technologie basée sur Java qui permet aux développeurs de générer dynamiquement du code HTML, XML ou tout autre type de page web.&lt;br /&gt;
* [http://tiles.apache.org/ Tiles] est un moteur de template pour pages JSP.&lt;br /&gt;
&lt;br /&gt;
== API et dépendances ==&lt;br /&gt;
Avant de commencer, il faut récupérer la dernière version stable du framework Apache Struts [http://struts.apache.org/download.cgi ici] (prendre une &amp;quot;Full Distribution&amp;quot;). Pour notre exemple, on aura besoin des JAR suivant:&lt;br /&gt;
* [http://struts.apache.org/download.cgi struts2-core-2.0.14.jar]&lt;br /&gt;
* [http://struts.apache.org/download.cgi struts2-tiles-plugin-2.0.14.jar]&lt;br /&gt;
* [http://tiles.apache.org/download.html tiles-core-2.0.4.jar] de [http://tiles.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://tiles.apache.org/download.html tiles-api-2.0.4.jar] de [http://tiles.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://tiles.apache.org/download.html tiles-jsp-2.0.4.jar] de [http://tiles.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://www.opensymphony.com/xwork/download.action xwork-2.0.7.jar] de [http://www.opensymphony.com/xwork/ OpenSymphony] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://commons.apache.org/downloads/download_beanutils.cgi commons-beanutils-1.7.0.jar] de [http://commons.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://commons.apache.org/digester/download_digester.cgi commons-digester-1.8.jar] de [http://commons.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://commons.apache.org/downloads/download_logging.cgi commons-logging-1.0.4.jar] de [http://commons.apache.org/ Apache] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://freemarker.sourceforge.net/ freemarker-2.3.8.jar] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
* [http://www.ognl.org/download.html ognl-2.6.11.jar] (fournis dans la distribution de Struts 2.0.14)&lt;br /&gt;
&lt;br /&gt;
== Intégration de Struts dans un projet ==&lt;br /&gt;
Dans un projet web dynamique, ajouter les lignes suivantes dans le fichier '''WEB-INF/web.xml''':&lt;br /&gt;
 &amp;lt;filter&amp;gt;&lt;br /&gt;
     &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
     &amp;lt;filter-class&amp;gt;org.apache.struts2.dispatcher.FilterDispatcher&amp;lt;/filter-class&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;
     &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
     &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
 &amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;
Ensuite, il faut définir la configuration de Struts à travers le fichier '''struts.xml''' à placer dans un répertoire mentionné dans le CLASSPATH (ressources):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE struts PUBLIC&lt;br /&gt;
        &amp;quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&amp;quot;&lt;br /&gt;
        &amp;quot;http://struts.apache.org/dtds/struts-2.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;struts&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;constant name=&amp;quot;struts.enable.DynamicMethodInvocation&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;constant name=&amp;quot;struts.devMode&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;include file=&amp;quot;example.xml&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/struts&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Ce fichier contient un autre fichier, '''example.xml''':&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE struts PUBLIC&lt;br /&gt;
        &amp;quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&amp;quot;&lt;br /&gt;
        &amp;quot;http://struts.apache.org/dtds/struts-2.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;struts&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;package name=&amp;quot;essai-default&amp;quot; extends=&amp;quot;struts-default&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- Ajouter les paramètres communs à tous les paquetages ici --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;package name=&amp;quot;root&amp;quot; namespace=&amp;quot;/&amp;quot; extends=&amp;quot;essai-default&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- Ajouter les paramètres propre au paquetage ici --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- Ajouter les actions ici --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;/package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/struts&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration de Tiles ==&lt;br /&gt;
Ajouter les lignes suivantes dans le fichier '''WEB-INF/web.xml''':&lt;br /&gt;
 &amp;lt;listener&amp;gt;&lt;br /&gt;
     &amp;lt;listener-class&amp;gt;org.apache.struts2.tiles.StrutsTilesListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;
 &amp;lt;/listener&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;context-param&amp;gt;&lt;br /&gt;
     &amp;lt;param-name&amp;gt;tilesDefinitions&amp;lt;/param-name&amp;gt;&lt;br /&gt;
     &amp;lt;param-value&amp;gt;/WEB-INF/tiles.xml&amp;lt;/param-value&amp;gt;&lt;br /&gt;
 &amp;lt;/context-param&amp;gt;&lt;br /&gt;
Dans le fichier de configuration de Struts et pour chaque paquetage utilisant Tiles, ajouter les lignes suivantes:&lt;br /&gt;
 &amp;lt;result-types&amp;gt;&lt;br /&gt;
     &amp;lt;result-type name=&amp;quot;tiles&amp;quot; class=&amp;quot;org.apache.struts2.views.tiles.TilesResult&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;/result-types&amp;gt;&lt;br /&gt;
Créer le fichier '''WEB-INF/tiles.xml''':&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE tiles-definitions PUBLIC &lt;br /&gt;
        &amp;quot;-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN&amp;quot; &lt;br /&gt;
        &amp;quot;http://struts.apache.org/dtds/tiles-config_2_0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tiles-definitions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ajouter toutes les définitions Tiles ici --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tiles-definitions&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création du template des pages ==&lt;br /&gt;
On créé la page JSP '''WEB-INF/pages/layout.jsp''' qui va nous servir de template:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;%@ taglib uri=&amp;quot;http://tiles.apache.org/tags-tiles&amp;quot; prefix=&amp;quot;tiles&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Essai&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;tiles:insertAttribute name=&amp;quot;body&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Puis on ajoute la définition Tiles suivante dans le fichier '''WEB-INF/tiles.xml''':&lt;br /&gt;
 &amp;lt;definition name=&amp;quot;default&amp;quot; template=&amp;quot;/WEB-INF/pages/layout.jsp&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;/definition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'une action ==&lt;br /&gt;
On créé la nouvelle classe action, héritant de [http://struts.apache.org/2.0.14/struts2-core/apidocs/com/opensymphony/xwork2/ActionSupport.html com.opensymphony.xwork2.ActionSupport]:&lt;br /&gt;
 package org.minetti.example.struts.ui.action;&lt;br /&gt;
 &lt;br /&gt;
 import com.opensymphony.xwork2.ActionSupport;&lt;br /&gt;
 &lt;br /&gt;
 public class ExampleAction extends ActionSupport {&lt;br /&gt;
 &lt;br /&gt;
   private static final long serialVersionUID = 6589265961532614115L;&lt;br /&gt;
 &lt;br /&gt;
   @Override&lt;br /&gt;
   public String execute() throws Exception {&lt;br /&gt;
 &lt;br /&gt;
     // Traitement de l'action&lt;br /&gt;
 &lt;br /&gt;
     return ActionSupport.SUCCESS;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
Puis, insère les lignes suivantes dans le paquetage root du fichier de configuration de Struts:&lt;br /&gt;
 &amp;lt;action name=&amp;quot;Example&amp;quot; class=&amp;quot;org.minetti.example.struts.ui.action.ExampleAction&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;result type=&amp;quot;tiles&amp;quot;&amp;gt;example&amp;lt;/result&amp;gt;&lt;br /&gt;
 &amp;lt;/action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'une page ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* [http://tiles.apache.org/tutorial/index.html Tutorial Apache Tiles]&lt;br /&gt;
* [http://www-igm.univ-mlv.fr/~dr/XPOSE2003/tiles/index.html Tiles - Institut d'électronique et d'informatique Gaspard-Monge]&lt;/div&gt;</summary>
		<author><name>Jp</name></author>	</entry>

	</feed>