TILES
<  Home  |  Présentation  |  Installation  |  TagLib  |  Exemples |  Webographie et liensContacts  >

PLAN

Introduction

    Jusqu'à présent lorsqu'on présente la structure d'une application web ecrite avec le Framework Struts, la structure du programme est beaucoup plus détaillée que la manière d'organiser et d'agencer l'apparence et le contenu des pages JSP pour ce type d'application. Il existe cependant trois méthodes principales pour organiser notre application web.

   La première méthode consiste à inclure le code HTML dans les pages JSP programmées. Cette approche est la plus courrante pour les developpeurs web, mais est aussi très contraignante dans le cadre de moyenne ou grosse application. Dans le même esprit, la séparation inexistante du code de la page et de son apparence rend le travail en équipe impossible.

   La seconde approche est basé sur l'instruction JSP "include".
Cette instruction permet en effet d'inclure des pages jsp dans une autre, permettant de réutiliser toute la partie statique de l'application et ainsi permet de diminuer la redondance du code. En utilisant la méthode JSP "include", les pages du serveur sont divisée en fragment qui ont chacunes leurs taches à faire. Un template de fond, qui appelle chaque partie,  agence les fragments produisant la page montrée à l'utilisateur. Le template agit donc comme un "switch" qui redirige vers les bons fragments les requètes. Tout se déroule au yeux des différents fichiers comme s'ils étaient appelés directement.



   Enfin la dernière méthode est celle associée aux templates qui va être introduit ensuite et qui represente la meilleure solution pour reduire le code redondant dans une application web et dans le même temps de séparé l'ensemble du code de l'application de son apparence.



Le concept de "template"

    Un template (ou en francais modèle) est une page JSP qui utilise une bibliothèque d'étiquettes personnalisées JSP pour décrire l'aspect graphique de la page. Le modèle agit comme une définition de l'apparence des différentes pages d'une application web, sans pour autant spécifier le contenu des ces mêmes pages. Le contenu est inséré dans le template lors de l'exécution. Ainsi une ou plusieurs pages peuvent utiliser le même modèle assurant l'uniformité de la présentation.


Le template fournit l'apparence de la page

    Comparons maintenant la fonctionnalité de JSP "include" et le système de "template" :
    • La fonction JSP "include" est déjà établie, et est vraiement adapté à des applications plus grande.
    • La plupart des serveurs d'applications sont optimisés pour les JSPs.
    • Les pages "inclues" par les templates fournissent des fragments HTML partiels, ce qui peut empécher la maintenance des pages avec un éditeur HTML classique.
    • La plupart des serveurs d'applications recompilent les pages JSP. Lorsque celles ci  changent, l'ensemble des pages sont recompilées. Les templates crées beaucoup plus de pages qui vont être recompilées.
    • Les templates actuellement réutilisent beaucoup de codes qui normalement auraient été dupliqués sur toutes les pages. Ce qui permet de reduire considérablement  la taille des pages et de sauvegarder beaucoup de ressources sur le serveur.

Tiles : généralités

   Le framework Tiles fournit un mécanisme de template qui permet, comme tout système de template, de bien séparer la partie affichage de la partie code d'une application web. Comme montré juste avant, il est possible d'établir une disposition et d'y insérer dynamiquement le contenu des pages au cours de l'exécution de l'application. Ce mechanisme est aussi très puissant dans le cadre de personnalisation de l'interface en fonction des préférence de l'utilisateur, son pays (internationnalisation), ou juste pour un changement de look&feel (ce qui est le lot tôt ou tard de pratiquement toutes les applications web). Le framework Tiles fournit les fonctionalités suivantes :
    • Système de template
    • Construction et chargement de pages JSP dynamiques
    • supporte la réutilisation de "tile"
    • supporte l'internationnalisation (I18N)
    Dans un premier temps, le framework Struts possédait un système de template basé sur un ensemble de tag (ou étiquette) assez basique. Cette bibliothèque d'étiquette permettait d'assembler les pages JSP d'une application web d'une manière très basique. Même si ces fonctionnalités étaient  très pratique pour séparer l'interface du code, le framework Tiles a été beaucoup plus loin et actuellement fournit un jeu de tag bien plus évoluer et en plus beaucoup d'autre possibilités comme la possibilité d'utilisé des JavaBeans.

    Tiles a été conçut par un français : Cédric Dumoulin. A l'origine appelé "Components", il a été renommé car ce terme était trop souvent utilisé et des confusions étaient souvent faites. Si on relit la document technique de Tiles on trouvera encore des référence à cet ancienne appélation. A l'origine, Cédric Dumoulin a voulu étenbdre le concept de template et donner au développeur plus de flexibilité et de libertélors de la création de leurs applications web construites à partir d'une technologie basé sur JSP.

Tiles : définitions

   Lors de la conception de n'importe quelle application graphique, une des phases de l'établissement du cahier des charges est la définition de la charte de l'interface graphique. Celle ci passe par un "zoning" de l'interface. Un  tile est une région, ou zone, dans une page web.

Le zonning s'effectue généralement en suivant une politique propre au site, à l'entreprise, ou tout simplement pour avoir une uniformité vis a vis d'un produit. Dans ce cas il est évident que certaines régions, ou "Tiles", des pages web vont être identique.

Ces régions peuvent être dynamiques ou statiques. En elle même, la page n'a rien de spéciale mis à part le fait qu'elle est faite pour fonctionner sur le shémas du framework Tiles. Le fait de se plier à ce framework sous entend que les pages utilisent les mécanismes de d'affichage de Tiles et donc la bibliothèque d'étiquettes (aussi appelé TagLib) spécifique à Tiles.

L'aspect le plus important de l'utilisation de Tiles et des "tiles" est la ré-utilisabilité. En effet la conception suivant le framework de Tiles permet de produire des morceaux de codes entierement re-utilisable sur plusieurs applications. La réutilisabilité ne se fait pas uniquement sur les regions (Tiles), elle se fait aussi sur le template de la page.

Enfin vis à vis de Tiles on ne peut que constater que sa simplicité de fonctionnement et la puissance de ses fonctionnalités. Comme il le sera expliqué dans la partie traitant des exemples, son utilisation est accessible a n'importe quel développeur web n'ayant aucune connaissance des JSPs.

Tiles : Layouts

Jusqu'à présent, la notion de template est restée assez vague. En fait un template va servir a assembler des Tiles entre eux pour formé la page présentée au client. La syntaxe de Tiles ressemble beaucoup a celle utilisée dans le systeme inclus à Struts. Dans le langage Tiles, les templates ne sont pas nommés : "Layouts'".

Ces "layouts" sont aussi considérés comme des "tiles". Les pages JSP ou les applications entière peuvent réutiliser les "layouts". Il existe même des bibliothèques de layouts prédéfinis. Le framework Tile fournit six layouts pré construit. Ceux ci peuvent être reutilisé ou modifier au besoin. Ces layouts sont :

  • Classic Layout : un layout classique comme celui présenté par l'image précédente
  • Columns Layout  : un layout par colonne chaques tiles sont organisés verticalement
  • Center Layout : un layout centré de la version "classic"
  • Menu Layout : template pour un menu standard avec des liens
  • Tabs Layout  : un template avec un style de "tabs" entre les tiles
  • Vertical box Layout : visualise une liste de tiles affichés verticalement


Dans le chapitre suivant, l'installation et la configuration de "Tiles" et son installation sera développée.