Struts2:ApplicationWebTiles

De Wiki Fred
Aller à : navigation, rechercher
Struts2 - Application web avec les tiles

Avant de commencer



Dépendances maven


  • Ajouter la dépendance du plugin tiles de struts2
<dependency>
	<groupId>org.apache.struts</groupId>
	<artifactId>struts2-tiles-plugin</artifactId>
	<version>2.3.24</version>
</dependency>


Web Application Deployment Descriptor


  • Modifier le fichier web.xml afin d'intégrer le listener pour les tiles en y ajoutant
<listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
  • Modifier le fichier web.xml afin d'y intégrer le fichier de configuration des tiles en y ajoutant
<context-param>
    <param-name>definitions-config</param-name>
    <param-value>/WEB-INF/basic-tiles.xml</param-value>
</context-param>


Fichier de configuration des tiles


  • Créer un fichier basic-tiles.xml dans src/main/webapp/WEB-INF afin de décrire le tile layout.base
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

    <definition name="layout.base" template="/views/base-template.jsp">
        <put-attribute name="body" value="/views/body.jsp"/>
    </definition>
    
</tiles-definitions>


Fichier de configuration de struts


  • Modfier le fichier struts.xml afin


  • que le package étende tiles-default à la place de struts-default
<package name="default" namespace="/" extends="tiles-default">
  • que que l'action hello redirige vers le tile layout.base
<result type="tiles" name="success">layout.base</result>


Page de template


  • Créer un fichier base-template.jsp dans src/main/webapp/views afin de créer le template de base défini dans basic-tiles.xml
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
<head><title>Struts2 With Tiles</title></head>
<body>
	<tiles:insertAttribute name="body" />
</body>
</html>


Composants du template


  • Créer un fichier body.jsp dans src/main/webapp/views afin de créer un composant qui sera intégré dans le template de base basic-template.xml grâce à la balise <put-attribute name="body" value="/views/body.jsp"/> du fichier basic-tiles.xml
<h1>Hello World With Tiles</h1>