Configuration de Struts

Configuration de votre application J2EE pour utiliser Struts

Ajouter les fichiers et librairies requises à votre projet

Pour utiliser Struts vous avez besoin de :

  • Télécharger une distribution binaire du framework à partir du site http://jakarta.apache.org/struts.
  • Extraire l'archive puis de copier toutes les fichiers lib/*.jar vers le dossier WEB-INF/lib de votre application.
  • Copier également les fichiers lib/*.tld files vers le dossier WEB-INF/ ou WEB-INF/tld folder (créez le s'il n'existe pas).

Modifier le fichier de déployement

Maintenant, vous devez configurer votre conteneur de servlet (typiquement Tomcat) pour lui dire d'utiliser Struts. Pour cela, vous devez modifier le fichier de déployement web.xml pour définir l'ActionServlet de Struts comme servlet par défaut.

Voici un exemple de configuration

<web-app>
	<display-name>My Struts Application</display-name>
	<description>
		Web application for learning 
		to get Struts work
	</description>
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>
			org.apache.struts.action.ActionServlet
		</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>
				/WEB-INF/struts-config.xml
			</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>/jsp/welcome.jsp</welcome-file>
	</welcome-file-list>
</web-app>

Cet exemple définit un unique servlet action à votre application qui est une une instance de la classe org.apache.struts.action.ActionServlet. Il est également nécessaire de renseigner l'attribut config du servlet action. Ce paramètre correspond au fichier de configuration de Struts dans lequel l'ActionServlet va chercher les informations nécessaires à son fonctionnement.

Fichier de configuration : struts-config.xml

Le fichier de configuration de Struts est un fichier XML dont l'élément racine est <struts-config>. Chaque balise enfant représente un élément de configuration du framework.

Data sources

Struts est également accompagné d'un composant capable de gérer les pools de connexions : le Struts Datasource manager. En choisissant d'utiliser le Struts Datasource manager à la place d'un autre système de pools de connexion ( Tomcat est lui même capable de gérer des pools de connexions), vous bénéficiez des facilités pour accèder au pool à partir de Struts ainsi que de l'indépendance de votre code au conteneur de servlet.

La configuration du Struts Datasource manager est faite à l'intérieur de la balise <data-sources> du fichier struts-config.xml. Pensez à d'abord placer le driver JDBC de votre SGBD à l'intérieur du répertoire WEB-INF/lib de votre application.

Voici un exemple de configuration :

<data-sources>
	<data-source 
		type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
		<set-property property="autoCommit" 
			value="false"/>
		<set-property property="description" 
			value="DatasourceCBO" />
		<set-property property="driverClass"
			value="org.gjt.mm.mysql.Driver" />
		<set-property property="maxCount" 
			value="4" />
		<set-property property="minCount" 
			value="2" />
		<set-property property="url"
			value="jdbc:mysql://localhost/mybdd" />
		<set-property property="user" 
			value="myuser"/>
		<set-property property="password" 
			value="mypassword"/>
	</data-source>
</data-sources>

Le Datasource manager peut être utilisé pour déployer n'importe quel pool de connections qui implémente l'interface javax.sql.DataSource. Dans l'exemple ci-dessus, la classe com.mysql.jdbc.jdbc2.optional.MysqlDataSource, qui est fournit par le driver JDBC de MySQL, est utilisée. Si aucune classe n'est spécifiée, un data source générique (et limité), org.apache.struts.util.GenericDataSource, est fournit par Struts. Préférez toujours le data source fournit par votre driver JDBC ou, si aucun composant n'est disponible, utilisez le BasicDataSource du projet Commons DBCP de Jakarta Apache (org.apache.commons.dbcp.BasicDataSource).

Une fois le data source configuré, rechargez l'application. Dorénavant, vous pouvez accèder au data source à l'intérieur de votre code en utilisant les lignes suivantes :

(DataSource) dataSource =
(DataSource)servlet.getServletContext
	.getAttribute(Globals.DATA_SOURCE_KEY);

Note : Action.DATA_SOURCE_KEY est maintenant déprécié et est remplacé par Globals.DATA_SOURCE_KEY.

Form beans

Les Form Beans correspondent à la configuration des composants the ActionForms. La définition des Form Beans est faite à l'intérieur d'un élément <form-beans> qui inclus plusieurs éléments <form-bean> chacun d'eux correspondant à une Form Bean..

Voici un exemple de configuration :

<form-beans>
   <form-bean name="loginForm"
	type="fr.reunion.ac.cbo.form.LoginForm" />
   <form-bean name="folderForm"
	type="fr.reunion.ac.cbo.form.FolderForm"/>
</form-beans>
  • L'attribut name de l'élement <form-bean> est fixé arbitrairement and sera utilisé plus tard dans le fichier de configuration pour la définition des Action mappings.
  • L'élément Type correspond au nom de la classe java de votre ActionForm.

Global forwards

Les Global forwards sont un moyen de définir des destinations possibles pour vos pages et ceux de manière globale. Voici un exemple qui définit un forward "login" qui sera accessible depuis l'application entière.

<global-forwards>
   <forward name="login"
	path="/logon.jsp" />
</global-forwards>

Pour accèder aux Global forwards vous devez utiliser la méthode findForward de l'objet ActionMapping.

Note :Si un forward local existe ce sera lui qui sera prioritaire.

Action mappings

La partie la plus importance. Vous définissez ici le comportements général de votre application en associant les Actions avec les Form Beans (ActionForm) et les forwards (locaux cette fois-ci).

  • L'attribut path correspond à l'URL avec laquelle on accède à l'action. Pour y accèder réellement vous devez ajouter au path définit, l'URL pattern défini dans le fichier web.xml.
  • L'attribut Type correspond au nom de la classe Java de votre Action.
  • L'élément Name associe un Form Bean (also defined in the struts-config.xml file) avec une action.
  • L'attribut scope définie si l'Action est lié à une requête à ou à la session.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.