Using Definitions
So far, we’ve
seen that using Tiles can add value to an application because
you’re able to organize the layout of a page into a
single resource, the layout JSP page. This can save development time
and, more importantly, the time it takes to change the layout for an
application. However, there is a problem with the approach used in
the Storefront application shown earlier. In each of the non-layout
tiles, there is redundant code that specifies what content to use for
the header
, menubar
, and
copyright
content—the same attributes are
being passed in every page. This may not always be the case, but in
general, these values will be constant throughout an application. For
instance, the same copyright is typically shown on every page.
It’s redundant to have to specify these in every tile. Ideally, we could declare these attributes in one place, and the tiles could include just the page-specific attributes where needed. Tiles definitions provide just such functionality. A definition allows you to statically specify the attributes that are used by a template, which in turn allows you to specify only the page-specific attributes in your tiles. Definitions enable you to:
Centralize declaration of page description
Avoid repetitive declaration of nearly identical pages (by using definition inheritance)
Avoid creation of intermediate components used to pass parameters
Specify the name of a definition as a
forward
in the Struts configuration fileSpecify the name of a definition ...
Get Programming Jakarta Struts, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.