Here it goes..
springapp-Servlet.xml
======================
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- - Application context definition for "springapp" DispatcherServlet. -->
<beans>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles-def.xml</value>
</list>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
<!-- URL Mappings -->
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="alwaysUseFullPath" value="true"/>
<property name="mappings">
<props>
<prop key="/example.htm">exampleController</prop>
</props>
</property>
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor"/>
</list>
</property>
</bean>
<bean id="exampleController" class="test.ExampleController">
<property name="viewName" value="example"/>
</bean>
</beans>
web.xml\
=======
<
servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
tiles-def.xml
=============
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"<DTDURL>/tiles-config_2_0.dtd">
<tiles-definitions>
<!-- Components -->
<definition name="head-tile" path="/ui/head.jsp"/>
<definition name="left-nav-tile" path="/ui/leftnav.jsp"/>
<definition name="body-tile" path="/ui/body.jsp"/>
<definition name="foot-tile" path="/ui/foot.jsp"/>
<definition name="example" template="/WEB-INF/ui/layout.jsp">
<put-attribute name="body-tile" type="template" value="/WEB-INF/ui/body.jsp" />
<put-attribute name="head-tile" type="template" value="/WEB-INF/ui/head.jsp" />
<put-attribute name="left-nav-tile" type="template" value="/WEB-INF/ui/leftnav.jsp" />
<put-attribute name="foot-tile" type="template" value="/WEB-INF/ui/foot.jsp" />
</definition>
<definition name="SampleValidation" extends="example">
<put-attribute name="title" value="Hello Tile" />
</definition>
</tiles-definitions>
JSP's
======
Create a jsp for each panel - body,head,left and foot.
Create a layout.jsp where the layout of the page is defined.
layout.jsp:
===========
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head><title>OPM</title></head>
<body>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan="2">
<tiles:insertAttribute name="head-tile"/>
</td>
</tr>
<tr>
<td width="25%">
<tiles:insertAttribute name="left-nav-tile"/>
</td>
<td width="75%">
<tiles:insertAttribute name="body-tile"/>
</td>
</tr>
<tr>
<td colspan="2">
<tiles:insertAttribute name="foot-tile"/>
</td>
</tr>
</table>
</body>
</html>