

{"id":20928,"date":"2018-07-13T04:05:00","date_gmt":"2018-07-13T04:05:00","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=20928"},"modified":"2018-09-15T12:27:20","modified_gmt":"2018-09-15T06:57:20","slug":"spring-mvc-tiles-3-integration","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/","title":{"rendered":"Spring MVC Tiles 3 Integration | Spring Tiles Integration"},"content":{"rendered":"<h2 class=\"western\">1. Objective<\/h2>\n<p>In our previous tutorial, we studied\u00a0<a href=\"https:\/\/data-flair.training\/blogs\/spring-security-tutorial\/\"><strong>Spring Security<\/strong><\/a>.\u00a0Today in this\u00a0Spring MVC Tiles 3 Integration tutorial, we will learn about the integration of <a href=\"https:\/\/data-flair.training\/blogs\/spring-mvc-framework\/\"><strong>Spring MVC Framework<\/strong><\/a> with <strong><a href=\"https:\/\/tiles.apache.org\/framework\/tutorial\/index.html\">Apache Tiles3<\/a><\/strong>. Along with that, we will see the advantages of Spring Tiles Integration it and the working example with Eclipse IDE in place.<br \/>\nSo, let&#8217;s start\u00a0Spring MVC Tiles 3 Integration.<\/p>\n<div id=\"attachment_20938\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20938\" class=\"wp-image-20938 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg\" alt=\"Spring MVC Tiles 3 Integration | Spring Tiles Integration\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-20938\" class=\"wp-caption-text\">Spring MVC Tiles 3 Integration | Spring Tiles Integration<\/p><\/div>\n<h2 class=\"western\">2.Spring MVC Tiles 3<\/h2>\n<p>Before going through this Spring MVC Tiles 3 Integration tutorial, we should have<a href=\"https:\/\/data-flair.training\/blogs\/java-tutorial\/\"><strong> basic knowledge of Java language<\/strong><\/a> and <a href=\"https:\/\/data-flair.training\/blogs\/spring-framework-tutorial\/\"><strong>Spring Framework<\/strong><\/a>. Apache Tiles is an open source framework. It is a template engine for Java-based web frameworks.<br \/>\nOne of the major areas where the Spring MVC Framework has advanced comparing it with other frameworks is in a separation of the view technologies. The Apache Tiles is based on a composite pattern which is used for simplifying the development of UIs. The Spring Framework provides the integration support with the Apache Tiles framework so as to develop required web applications and manage the layout of Spring MVC by the help of Spring Tiles.<\/p>\n<h2>3. Advantages of Tiles in Spring MVC<\/h2>\n<p>Some of the major advantages of Spring MVC Tiles 3 Integration as follows:<\/p>\n<h4>a. Reusability<\/h4>\n<p>You can reuse a single component in many pages. For example, header and footer components.<\/p>\n<h4>b. Centralised Control<\/h4>\n<p>You have the ability to control the layout of the page. This is done using the single template page only.<br \/>\n<strong>c. Easily Changeable Layout<\/strong><br \/>\nUsing the single template page, you are capable of changing the layout of the page anytime. Therefore, your website becomes adaptable to new technologies such as jquery, bootstrap etc.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/beanpostprocessors\/\">Read about Spring BeanPostProcessors &#8211; Latest Tutorial 2018<\/a><\/strong><\/p>\n<h2 class=\"western\">4. Spring MVC Tiles Example<\/h2>\n<p>Before you proceed with Integration of Spring MVC Tiles 3, we will discuss the working example you need to load some of the jar files:<br \/>\nSpring Core jar files<br \/>\nSpring Web jar files<br \/>\nTiles jar files<br \/>\nThese jar files should be put inside the WEB_INF\/lib directory.<br \/>\n<strong>Let\u2019s define a working example using Eclipse IDE having the following steps:<\/strong><\/p>\n<ol>\n<li>Create your project with name SpringEx and a package com.example. This should be under the src folder of your created project.<\/li>\n<li>Add the Spring Libraries that are required using the Add External <a href=\"https:\/\/data-flair.training\/blogs\/jar-file-in-java\/\"><strong>JARs<\/strong> <\/a>options.<\/li>\n<li>Define an index page with index.jsp.<\/li>\n<li>Create HelloWorldController.java, ContactController.java, and Contact.java under the above-made package.<\/li>\n<li>Write the web.xml, tile.xml and spring-servlet.xml configuration file under the src folder.<\/li>\n<li>Write the code for all the View components.<\/li>\n<li>Finally, write code for all<a href=\"https:\/\/data-flair.training\/blogs\/java-file-class\/\"><strong> Java files<\/strong> <\/a>and<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-bean\/\"> Bean <\/a><\/strong>config file and run the application as described.<\/li>\n<\/ol>\n<h3>a. Index Page<\/h3>\n<p><strong>index.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;a\u00a0href=\"hello.html\"&gt;Hello\u00a0Spring&lt;\/a&gt;\u00a0|\u00a0\u00a0\u00a0\r\n&lt;a\u00a0href=\"contact.html\"&gt;Contact&lt;\/a&gt;<\/pre>\n<h3>b. Controller classes<\/h3>\n<p><strong>HelloWorldController.java<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example.controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.stereotype.Controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.RequestMapping;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.servlet.ModelAndView;\u00a0\u00a0\r\n@Controller\u00a0\u00a0\r\npublic\u00a0class\u00a0HelloWorldController\u00a0{\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0@RequestMapping(\"\/hello\")\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0public\u00a0ModelAndView\u00a0helloWorld()\u00a0{\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String\u00a0message\u00a0=\u00a0\"Hello\u00a0World,\u00a0Spring\u00a0MVC\u00a0@\u00a0example\";\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0new\u00a0ModelAndView(\"hello\",\u00a0\"message\",\u00a0message);\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\r\n}<\/pre>\n<p><strong>ContactController.java<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example.controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.stereotype.Controller;\u00a0\u00a0\r\nimport\u00a0org.springframework.validation.BindingResult;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.ModelAttribute;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.RequestMapping;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.RequestMethod;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.bind.annotation.SessionAttributes;\u00a0\u00a0\r\nimport\u00a0org.springframework.web.servlet.ModelAndView;\u00a0\u00a0\r\nimport\u00a0com.example.form.Contact;\u00a0\u00a0\r\n@Controller\u00a0\u00a0\r\n@SessionAttributes\u00a0\u00a0\r\npublic\u00a0class\u00a0ContactController\u00a0{\u00a0\u00a0\r\n\u00a0\u00a0\u00a0@RequestMapping(value\u00a0=\u00a0\"\/addContact\",\u00a0method\u00a0=\u00a0RequestMethod.POST)\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0public\u00a0String\u00a0addContact(@ModelAttribute(\"contact\")\u00a0Contact\u00a0contact,BindingResult\u00a0result)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0\"redirect:contact.html\";\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0@RequestMapping(\"\/contact\")\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0public\u00a0ModelAndView\u00a0showContacts()\u00a0{\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0new\u00a0ModelAndView(\"contact\",\u00a0\"command\",\u00a0new\u00a0Contact());\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\r\n}<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/bean-definition-inheritance\/\">Read about Spring Bean Definition Inheritance &amp; Bean Definition Template<\/a><\/strong><\/p>\n<h3>c. Form class<\/h3>\n<p><strong>Contact.java<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">package\u00a0com.example.form;\u00a0\u00a0\r\npublic\u00a0class\u00a0Contact\u00a0{\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0private\u00a0String\u00a0firstname;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0private\u00a0String\u00a0lastname;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0private\u00a0String\u00a0email;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0private\u00a0String\u00a0telephone;\u00a0\u00a0\r\n}<\/pre>\n<h3>d. web.xml<\/h3>\n<p><strong>web.xml<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;?xml\u00a0version=\"1.0\"\u00a0encoding=\"UTF-8\"?&gt;\u00a0\u00a0\r\n&lt;web-app\u00a0version=\"2.5\"\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xmlns=\"http:\/\/java.sun.com\/xml\/ns\/javaee\"\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xsi:schemaLocation=\"http:\/\/java.sun.com\/xml\/ns\/javaee\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0http:\/\/java.sun.com\/xml\/ns\/javaee\/web-app_2_5.xsd\"&gt;\u00a0\u00a0\r\n\u00a0&lt;servlet&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;servlet-name&gt;spring&lt;\/servlet-name&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;\/servlet-class&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;load-on-startup&gt;1&lt;\/load-on-startup&gt;\u00a0\u00a0\r\n&lt;\/servlet&gt;\u00a0\u00a0\r\n&lt;servlet-mapping&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;servlet-name&gt;spring&lt;\/servlet-name&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;url-pattern&gt;*.html&lt;\/url-pattern&gt;\u00a0\u00a0\r\n&lt;\/servlet-mapping&gt;\u00a0\u00a0\r\n&lt;\/web-app&gt;<\/pre>\n<h3>e. spring-servlet.xml file<\/h3>\n<p>This is the important configuration file where you need to specify the ViewResolver and View components.<br \/>\nThis XML file should be located inside the WEB-INF directory.<br \/>\n<strong>spring-servlet.xml<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">\u00a0&lt;beans\u00a0xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xmlns:context=\"http:\/\/www.springframework.org\/schema\/context\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0http:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0http:\/\/www.springframework.org\/schema\/context\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0http:\/\/www.springframework.org\/schema\/context\/spring-context-3.0.xsd\"&gt;\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0&lt;context:component-scan\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0base-package=\"com.example.controller\"\u00a0\/&gt;\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;bean\u00a0id=\"viewResolver\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0class=\"org.springframework.web.servlet.view.UrlBasedViewResolver\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;property\u00a0name=\"viewClass\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;value&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0org.springframework.web.servlet.view.tiles2.TilesView\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/value&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/property&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/bean&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;bean\u00a0id=\"tilesConfigurer\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0class=\"org.springframework.web.servlet.view.tiles2.TilesConfigurer\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;property\u00a0name=\"definitions\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;list&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;value&gt;\/WEB-INF\/tiles.xml&lt;\/value&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/list&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/property&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/bean&gt;\u00a0\u00a0\r\n&lt;\/beans&gt;<\/pre>\n<h3>f. tiles.xml file<\/h3>\n<p><strong>tiles.xml<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;?xml\u00a0version=\"1.0\"\u00a0encoding=\"UTF-8\"\u00a0?&gt;\u00a0\u00a0\r\n&lt;!DOCTYPE\u00a0tiles-definitions\u00a0PUBLIC\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"-\/\/Apache\u00a0Software\u00a0Foundation\/\/DTD\u00a0Tiles\u00a0Configuration\u00a02.0\/\/EN\"\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"http:\/\/tiles.apache.org\/dtds\/tiles-config_2_0.dtd\"&gt;\u00a0\u00a0\r\n&lt;tiles-definitions&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;definition\u00a0name=\"base.definition\"\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0template=\"\/WEB-INF\/jsp\/layout.jsp\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"title\"\u00a0value=\"\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"header\"\u00a0value=\"\/WEB-INF\/jsp\/header.jsp\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"menu\"\u00a0value=\"\/WEB-INF\/jsp\/menu.jsp\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"body\"\u00a0value=\"\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"footer\"\u00a0value=\"\/WEB-INF\/jsp\/footer.jsp\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/definition&gt;\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;definition\u00a0name=\"contact\"\u00a0extends=\"base.definition\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"title\"\u00a0value=\"Contact\u00a0Manager\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"body\"\u00a0value=\"\/WEB-INF\/jsp\/contact.jsp\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/definition&gt;\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;definition\u00a0name=\"hello\"\u00a0extends=\"base.definition\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"title\"\u00a0value=\"Hello\u00a0Spring\u00a0MVC\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;put-attribute\u00a0name=\"body\"\u00a0value=\"\/WEB-INF\/jsp\/hello.jsp\"\u00a0\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/definition&gt;\u00a0\u00a0\u00a0\r\n&lt;\/tiles-definitions&gt;<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-java-based-configuration\/\">Let&#8217;s Read Spring Java Based Configuration &#8211; How to Configure Spring Beans<\/a><\/strong><\/p>\n<h3>g. View Components<\/h3>\n<p><strong>hello.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;html&gt;\u00a0\u00a0\r\n&lt;head&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Spring\u00a0MVC\u00a0Example&lt;\/title&gt;\u00a0\u00a0\r\n&lt;\/head&gt;\u00a0\u00a0\r\n&lt;body&gt;\u00a0\u00a0\r\n&lt;h1&gt;Welcome\u00a0to\u00a0Spring\u00a0MVC&lt;\/h1&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Message\u00a0is:\u00a0${message}&lt;\/p&gt;\u00a0\u00a0\r\n&lt;\/body&gt;\u00a0\u00a0\r\n&lt;\/html&gt;<\/pre>\n<p><strong>contact.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;%@taglib\u00a0uri=\"http:\/\/www.springframework.org\/tags\/form\"\u00a0prefix=\"form\"%&gt;\r\n&lt;html&gt;\u00a0\u00a0\r\n&lt;head&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Spring\u00a0Tiles\u00a0Contact\u00a0Form&lt;\/title&gt;\u00a0\u00a0\r\n&lt;\/head&gt;\u00a0\u00a0\r\n&lt;body&gt;\u00a0\u00a0\r\n&lt;h2&gt;Contact\u00a0Manager&lt;\/h2&gt;\u00a0\u00a0\r\n&lt;form:form\u00a0method=\"post\"\u00a0action=\"addContact.html\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;table&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:label\u00a0path=\"firstname\"&gt;First\u00a0Name&lt;\/form:label&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:input\u00a0path=\"firstname\"\u00a0\/&gt;&lt;\/td&gt;\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:label\u00a0path=\"lastname\"&gt;Last\u00a0Name&lt;\/form:label&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:input\u00a0path=\"lastname\"\u00a0\/&gt;&lt;\/td&gt;\u00a0\u00a0\r\n \u00a0\u00a0\u00a0&lt;\/tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:label\u00a0path=\"lastname\"&gt;Email&lt;\/form:label&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:input\u00a0path=\"email\"\u00a0\/&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:label\u00a0path=\"lastname\"&gt;Telephone&lt;\/form:label&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;form:input\u00a0path=\"telephone\"\u00a0\/&gt;&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td\u00a0colspan=\"2\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input\u00a0type=\"submit\"\u00a0value=\"Add\u00a0Contact\"\/&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/td&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\u00a0\u00a0\r\n&lt;\/table&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n&lt;\/form:form&gt;\u00a0\u00a0\r\n&lt;\/body&gt;\u00a0\u00a0\r\n&lt;\/html&gt;<\/pre>\n<p><strong>header.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;h2&gt;Header&lt;\/h2&gt;\u00a0\u00a0\r\n&lt;hr\/&gt;<\/pre>\n<p><strong>footer.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;hr\/&gt;\u00a0\u00a0\r\n&lt;p&gt;Copyright\u00a0\u00a0example.com.&lt;\/p&gt;<\/pre>\n<p><strong>menu.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;p&gt;Menu\u00a01&lt;\/p&gt;\u00a0\u00a0\r\n&lt;p&gt;Menu\u00a02&lt;\/p&gt;<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-dependency-injection\/\">Do you know Spring Dependency Injection \u2013 Types of Spring DI &amp; Example<\/a><\/strong><br \/>\n<strong>layout.jsp<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\">&lt;%@\u00a0taglib\u00a0uri=\"http:\/\/tiles.apache.org\/tags-tiles\"\u00a0prefix=\"tiles\"%&gt;\u00a0\u00a0\r\n&lt;!DOCTYPE\u00a0HTML\u00a0PUBLIC\u00a0\"-\/\/W3C\/\/DTD\u00a0HTML\u00a04.01\u00a0Transitional\/\/EN\"\u00a0\u00a0\r\n\"http:\/\/www.w3.org\/TR\/html4\/loose.dtd\"&gt;\u00a0\u00a0\r\n&lt;html&gt;\u00a0\u00a0\r\n&lt;head&gt;\u00a0\u00a0\r\n&lt;meta\u00a0http-equiv=\"Content-Type\"\u00a0content=\"text\/html;\u00a0charset=UTF-8\"&gt;\u00a0\u00a0\r\n&lt;title&gt;&lt;tiles:insertAttribute\u00a0name=\"title\"\u00a0ignore=\"true\"\u00a0\/&gt;&lt;\/title&gt;\u00a0\u00a0\r\n&lt;\/head&gt;\u00a0\u00a0\r\n&lt;body&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div&gt;&lt;tiles:insertAttribute\u00a0name=\"header\"\u00a0\/&gt;&lt;\/div&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0style=\"float:left;padding:10px;width:15%;\"&gt;&lt;tiles:insertAttribute\u00a0name=\"menu\"\u00a0\/&gt;&lt;\/div&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0style=\"float:left;padding:10px;width:80%;border-left:1px\u00a0solid\u00a0pink;\"&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tiles:insertAttribute\u00a0name=\"body\"\u00a0\/&gt;&lt;\/div&gt;\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0style=\"clear:both\"&gt;&lt;tiles:insertAttribute\u00a0name=\"footer\"\u00a0\/&gt;&lt;\/div&gt;\u00a0\u00a0\r\n&lt;\/body&gt;\u00a0\u00a0\r\n&lt;\/html&gt;<\/pre>\n<p>If you have made all of the above files then run the project. You will see a message with two Sub Menus as output:<br \/>\n<strong>Welcome to Spring MVC<\/strong><br \/>\nClicking on the Sub Menu you will see a form where you have to fill the contact details.<br \/>\nSo, this was all about Spring MVC Tiles 3 Integration. Hope you like our explanation.<\/p>\n<h2>5. Conclusion<\/h2>\n<p>Hence, in this Spring MVC Tiles 3 Integration Tutorial, we have seen about the integration of Spring Framework MVC with Apache Tiles Framework. Along with that you saw advantages of the Spring Tiles with a working example using Eclipse IDE. Furthermore, if you have any query regarding\u00a0Spring MVC Tiles 3 Integration, feel free to ask in the comment section.<br \/>\nSee Also-\u00a0<strong><a href=\"https:\/\/data-flair.training\/blogs\/spring-batch\/\">Spring Batch <\/a><\/strong><br \/>\n<strong><a href=\"https:\/\/tiles.apache.org\/framework\/tutorial\/integration\/frameworks.html\">For reference<\/a><\/strong><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:1888,&quot;href&quot;:&quot;https:\\\/\\\/tiles.apache.org\\\/framework\\\/tutorial\\\/index.html&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20250806233648\\\/https:\\\/\\\/tiles.apache.org\\\/framework\\\/tutorial\\\/index.html&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-10 06:48:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-08 14:39:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-13 11:18:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-17 10:25:48&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-27 15:54:23&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-05 10:06:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-16 01:12:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-07 05:36:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-10 10:51:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-14 07:52:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-20 05:39:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-07 06:29:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-11 18:27:56&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-26 08:23:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-29 15:35:45&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-02 15:08:46&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-02 15:08:46&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:1889,&quot;href&quot;:&quot;https:\\\/\\\/tiles.apache.org\\\/framework\\\/tutorial\\\/integration\\\/frameworks.html&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20231001094244\\\/https:\\\/\\\/tiles.apache.org\\\/framework\\\/tutorial\\\/integration\\\/frameworks.html&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-10 06:48:05&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-27 15:54:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-20 05:43:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-11 18:28:59&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-26 08:23:52&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-29 15:36:26&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-02 15:09:03&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-02 15:09:03&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Objective In our previous tutorial, we studied\u00a0Spring Security.\u00a0Today in this\u00a0Spring MVC Tiles 3 Integration tutorial, we will learn about the integration of Spring MVC Framework with Apache Tiles3. Along with that, we will&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":20938,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[384,977,13347,13349,13350,13351,13371,13372,13373,13374,13375],"class_list":["post-20928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring","tag-advantages-of-tiles-in-spring-mvc","tag-apache-tiles-jsp-example","tag-spring-mvc-tiles-3-integration","tag-spring-mvc-tiles-bootstrap","tag-spring-mvc-tiles-example-roseindia","tag-spring-mvc-with-apache-tiles","tag-spring-tiles-dinesh-on-java","tag-spring-tiles-example-mkyong","tag-spring-tiles-flow","tag-spring-tiles-integration","tag-spring-tiles-maven-dependency"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring MVC Tiles 3 Integration | Spring Tiles Integration - DataFlair<\/title>\n<meta name=\"description\" content=\"Spring MVC Tiles 3 Integration - Integration of Spring Framework MVC with Apache Tiles, Advantage of Spring Tiles Integration with example of Eclipse IDE\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring MVC Tiles 3 Integration | Spring Tiles Integration - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Spring MVC Tiles 3 Integration - Integration of Spring Framework MVC with Apache Tiles, Advantage of Spring Tiles Integration with example of Eclipse IDE\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-13T04:05:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-15T06:57:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring MVC Tiles 3 Integration | Spring Tiles Integration - DataFlair","description":"Spring MVC Tiles 3 Integration - Integration of Spring Framework MVC with Apache Tiles, Advantage of Spring Tiles Integration with example of Eclipse IDE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/","og_locale":"en_US","og_type":"article","og_title":"Spring MVC Tiles 3 Integration | Spring Tiles Integration - DataFlair","og_description":"Spring MVC Tiles 3 Integration - Integration of Spring Framework MVC with Apache Tiles, Advantage of Spring Tiles Integration with example of Eclipse IDE","og_url":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-07-13T04:05:00+00:00","article_modified_time":"2018-09-15T06:57:20+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Spring MVC Tiles 3 Integration | Spring Tiles Integration","datePublished":"2018-07-13T04:05:00+00:00","dateModified":"2018-09-15T06:57:20+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/"},"wordCount":686,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg","keywords":["Advantages of Tiles in Spring MVC","apache tiles jsp example","Spring MVC Tiles 3 Integration","spring mvc tiles bootstrap","spring mvc tiles example roseindia","Spring MVC with Apache Tiles","spring tiles dinesh on java","spring tiles example mkyong","spring tiles flow","Spring Tiles Integration","spring tiles maven dependency"],"articleSection":["Spring Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/","url":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/","name":"Spring MVC Tiles 3 Integration | Spring Tiles Integration - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg","datePublished":"2018-07-13T04:05:00+00:00","dateModified":"2018-09-15T06:57:20+00:00","description":"Spring MVC Tiles 3 Integration - Integration of Spring Framework MVC with Apache Tiles, Advantage of Spring Tiles Integration with example of Eclipse IDE","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/07\/Spring-MVC-Apache-Tiles-Integration.jpg","width":1200,"height":628,"caption":"Spring MVC Tiles 3 Integration | Spring Tiles Integration"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/spring-mvc-tiles-3-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Reading data from external files","item":"https:\/\/data-flair.training\/blogs\/tag\/reading-data-from-external-files\/"},{"@type":"ListItem","position":3,"name":"Spring MVC Tiles 3 Integration | Spring Tiles Integration"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=20928"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20928\/revisions"}],"predecessor-version":[{"id":32641,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/20928\/revisions\/32641"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/20938"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=20928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=20928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=20928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}