February 2005
Intermediate to advanced
528 pages
12h 53m
English
You want to create a new Tiles definition that reuses a similar one.
When you define a new definition in your Tiles definition file
(tiles-def.xml), you can specify a definition to
extend using the
extends="definitionName"
attribute. The new definition inherits attributes of the extended
definition and can override attribute values. (See Example 14-5.)
Example 14-5. Extending a new definition from a base definition
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<!-- A base Tile -->
<definition name="mainLayoutDef2" path="/layouts/mainLayout.jsp">
<put name="title" value="Struts Cookbook - Chapter 14 : Tiles"/> <put name="header" value="/common/header.jsp"/> <put name="navbar" value="/common/navbar2.jsp"/> <put name="body" type="string"/> <put name="news" value="/common/news.html"/> <put name="footer" value="/common/footer.jsp"/> </definition> <!-- Extensions of the base mainLayoutDef2 tile --> <definition name=".start" extends="mainLayoutDef2"> <put name="title" value="Start Page"/> <put name="body" value="/pages/pageStart.jsp"/> </definition> <definition name=".pageOne" extends="mainLayoutDef2"> <put name="title" value=" Page One"/> <put name="body" value="/pages/pageOne.jsp"/> <put name="news" value="/pages/pageOneNews.jsp"/> </definition> <tiles-definitions> ...