View RSS Feed

Spring Framework

Using Tiles in Spring MVC

Rate this Entry
by , 11-27-2011 at 10:39 PM (5726 Views)
In earlier tips, I talked about using Spring MVC and the use of different view technologies. In this tip, I will look at Tiles as a view technology for Spring MVC. Tiles was initially built to be used with the Struts Framework. But as it is a powerful view technology it has been reused by other web frameworks. To use Tiles with Spring MVC you need to register the Tilesí view resolver as a bean with the applicationís xml file, springexamples.xml.

Java Code:
<bean class= "org.springframework.web.servlet.view.tiles2.TilesViewResolver"/>
This view resolver that will attempt to find views that are defined as Tiles templates . The logical view name is exactly the same as the Tiles definition name. The TilesViewResolver relies on TilesConfigurer to keep track of that information. So the bean definition fo the TilesConfigurer would be the following:

Java Code:
<bean class= "org.springframework.web.servlet.view.tiles2.TilesConfigurer">
   <property name="definitions"> 
	<list>
	   <value>/WEB-INF/viewsviews.xml</value> 
	</list>
   </property> 
</bean>
TilesViewResolver will leverage the TilesConfigurer to load one or more Tiles definition files in order to resolve the views. For the Springexamples application there are a few Tiles definition files, all named views.xml, under the /WEB- INF/views folder. You then wire /WEB-INF/views/**/views.xml into the definitions property. By using the Ant-style ** patterns, the entire directory hierarchy under /WEB-INF/views will be searched for files named views.xml. The definition is shown below:

Java Code:
<!DOCTYPE tiles-definitions PUBLIC 
	"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" 
	"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
	<definition name="template" template="/WEB-INF/views/main_template.jsp">
	    <put-attribute name="top" value="/WEB-INF/views/tiles/carForm.jsp" />
	    <put-attribute name="side" value="/WEB-INF/views/tiles/login.jsp" />
	</definition> 
	<definition name="home" extends="template">
	      <put-attribute name="content" value="/WEB-INF/views/home.jsp" /> 
	</definition>
</tiles-definitions>
The home template will be found by the TilesViewResolver when it tries to resolve the logical view name returned by HomeControllerís showHomePage() methods. The home definition extends the template definition. It uses the home.jsp to render the main content on the page by incorporating all the common features of the page. DispatcherServlet will send the request to Tiles to render the results using the home definition. In the next tip, I will show you how to render the home page view with tiles.

Submit "Using Tiles in Spring MVC" to Facebook Submit "Using Tiles in Spring MVC" to Digg Submit "Using Tiles in Spring MVC" to del.icio.us Submit "Using Tiles in Spring MVC" to StumbleUpon Submit "Using Tiles in Spring MVC" to Google

Tags: spring mvc, tiles Add / Edit Tags
Categories
MVC , Tiles , Spring 3

Comments