##### Struts Tiles

- Welcome
- FAQ
- Installation
- User Guide
- Creating Templates
- Taglib Reference

##### Components

- Struts Apps
- Struts EL
- Struts Extras
- Struts Faces
- Struts Scripting
- Struts Taglib
- Struts Tiles

##### Quick Links

- Javadoc
- Struts 1

##### Project Documentation

- Project Information
- Project Reports

## Welcome To Struts Tiles

Welcome to the Struts Tiles component.Tiles is a templating system. (Include on steriods.) It can be used to create a common look and feel for a web application. Tiles can also be used to create reusable view components. This site will help you get started with Tiles.

Tiles can also be used without Struts. A new release of Tiles, Tiles 2, is being prepared. If you would like to use Tiles without Struts, see the new Apache Tiles 2 project. The focus of this site is using Tiles with Struts.

## Tiles Features

- Screen definitions
  - Create a screen by assembling Tiles : header, footer, menu, body, etc.
  - Definitions can take place :
    - in a centralized XML file
    - directly in JSP pages
    - programatically in Actions
  - Definitions provide an inheritance mechanism : a definition can extend another one, and override parameters.
- Layouts
  - Define common page layouts and reuse them across your website.
  - Define menu layouts, and use them by passing lists of items and links.
  - Define a portal layout, use it by passing a list of Tiles (pages) to show.
  - Reuse existing layouts, or define your own.
- Dynamic page building
  - Tiles can be gathered dynamically during page reload. It is possible to change any attribute: layout, list of Tiles in portal, list of menu items, etc.
- Reuse of Tiles / Components
  - If well defined, a Tile can be reused across multiple applications.
  - Dynamic attributes are used to parameterize Tiles.
  - It is possible to define a library of reusable Tiles.
  - Build a page by assembling predefined components, giving them appropriate parameters.
- Internationalization (i18n)

- It is possible to load different tiles according to Locale.
- A mechanism similar to Java properties files is used for definitions files: you can have one definition file per Locale. The appropriate definition is loaded according to the current Locale.

- Multi-channels

- It is possible to load different Tiles according to a key.
- For example, the key could represent user privileges, browser type, arbitrary name stored in session, etc.
- A mechanism similar to Java properties files is used for definitions files: you can have one definition file per key. The appropriate definition is loaded according to the key.