Tiles support
For better
struts/tiles support, myfaces has an integrated JspTilesViewHandler (since release 1.0.6 bate). The main advantage of the ViewHandler is, that tiles-definitions can be sourced out into xml files (up to now using tiles and myfaces you had to definie the layout within jsp-pages).
Have a look at the tiles-webapp example.
Steps to implement a myfaces-tiles application:
1) configure the JspTilesViewHandler in your faces-config:
<application>
<view-handler>net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl</view-handler> </application>
2) add the following lines to your web.xml
<context-param>
<param-name>tiles-definitions</param-name> <param-value>/WEB-INF/tiles.xml</param-value> </context-param>
3) define your layout in a tiles-definition file (
sample from the tiles-webapp).
When rendering the view, the JspTilesViewHandlerImpl will take the given viewId and compute a tileId by
- substituting any extension by ".tiles"
- appending ".tiles" if path-mapping is used
Next the ViewHanlder looks up in the tile-definitions for the corresponding definition.
(eg. for viewId = /page1.jsp the lookup would be /page1.tiles)
By the way, the JspTilesViewHandlerImpl is part of the myfaces-components. So someone could use it with Sun's RI too.
==================================================================
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config.dtd"> <tiles-definitions>
<definition name="layout.example" path="/template/template.jsp" > <put name="header" value="/common/header.jsp" /> <put name="menu" value="/common/navigation.jsp" /> </definition> <definition name="/page1.tiles" extends="layout.example" > <put name="body" value="/page1.jsp" /> </definition> <definition name="/page2.tiles" extends="layout.example" > <put name="body" value="/page2.jsp" /> </definition> </tiles-definitions>
http://www.marinschek.com/myfaces/tiki/tiki-index.php?page=Features