{"id":1588,"date":"2016-10-04T15:40:35","date_gmt":"2016-10-04T13:40:35","guid":{"rendered":"http:\/\/blog.rabahi.net\/?page_id=1588"},"modified":"2016-10-04T15:46:13","modified_gmt":"2016-10-04T13:46:13","slug":"java-spring-tiles","status":"publish","type":"page","link":"https:\/\/blog.rabahi.net\/?page_id=1588","title":{"rendered":"Java Spring &#8211; Tiles"},"content":{"rendered":"<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Prerequistes\"><span class=\"toc_number toc_depth_1\">1<\/span> Prerequistes<\/a><\/li><li><a href=\"#Configuration\"><span class=\"toc_number toc_depth_1\">2<\/span> Configuration<\/a><ul><li><a href=\"#WebMvcConfigjava\"><span class=\"toc_number toc_depth_2\">2.1<\/span> WebMvcConfig.java<\/a><\/li><li><a href=\"#tilesxml\"><span class=\"toc_number toc_depth_2\">2.2<\/span> tiles.xml<\/a><\/li><li><a href=\"#template\"><span class=\"toc_number toc_depth_2\">2.3<\/span> template<\/a><\/li><li><a href=\"#Header\"><span class=\"toc_number toc_depth_2\">2.4<\/span> Header<\/a><\/li><li><a href=\"#Footer\"><span class=\"toc_number toc_depth_2\">2.5<\/span> Footer<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h1><span id=\"Prerequistes\">Prerequistes<\/span><\/h1>\n<p>Please read : <a href=\"?page_id=1549\">Java spring &#8211; quickstart<\/a><\/p>\n<h1><span id=\"Configuration\">Configuration<\/span><\/h1>\n<h2><span id=\"WebMvcConfigjava\">WebMvcConfig.java<\/span><\/h2>\n<p>Set the following beans :<\/p>\n<pre lang=\"java\">\r\n  @Bean\r\n  public UrlBasedViewResolver viewResolver() {    \r\n    UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();    \r\n    viewResolver.setViewClass(TilesView.class);\r\n    viewResolver.setOrder(1);\r\n    return viewResolver;\r\n  }  \r\n\r\n  @Bean\r\n  public TilesConfigurer tilesConfigurer() {\r\n    TilesConfigurer tilesConfigurer = new TilesConfigurer();\r\n    tilesConfigurer.setDefinitions(\"\/WEB-INF\/tiles.xml\");\r\n    return tilesConfigurer;\r\n  }\r\n<\/pre>\n<h2><span id=\"tilesxml\">tiles.xml<\/span><\/h2>\n<p>Create src\/main\/webapp\/WEB-INF\/tiles.xml file :<\/p>\n<pre lang=\"xml\">\r\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<!DOCTYPE tiles-definitions PUBLIC\r\n       \"-\/\/Apache Software Foundation\/\/DTD Tiles Configuration 3.0\/\/EN\"\r\n       \"http:\/\/tiles.apache.org\/dtds\/tiles-config_3_0.dtd\">\r\n<tiles-definitions>\r\n\r\n    <!-- Parent -->\r\n    <definition name=\"tiles.template\" template=\"\/WEB-INF\/jsp\/template\/template.jsp\" >\r\n\t\t<put-attribute name=\"header\" value=\"\/WEB-INF\/jsp\/template\/header.jsp\" \/>\r\n\t\t<put-attribute name=\"footer\" value=\"\/WEB-INF\/jsp\/template\/footer.jsp\" \/>\r\n\t<\/definition>\r\n\t \r\n\t<!-- Child -->\r\n\t<definition name=\"\/*\/*\" extends=\"tiles.template\">\r\n\t\t<put-attribute name=\"content\" value=\"\/WEB-INF\/jsp\/pages\/{1}\/{2}.jsp\" \/>\r\n\t<\/definition>\r\n\r\n<\/tiles-definitions>\r\n<\/pre>\n<p>This mean that all url &#8220;\/A\/B&#8221; will use the jsp : \/WEB-INF\/jsp\/pages\/A\/B.jsp as &#8220;content&#8221; attribute.<\/p>\n<h2><span id=\"template\">template<\/span><\/h2>\n<p>template.jsp will insert the defined attributes (see tiles.xml) :<\/p>\n<pre lang=\"html\">\r\n<%@ page language=\"java\" contentType=\"text\/html; charset=UTF-8\"\r\n\tpageEncoding=\"UTF-8\"%>\r\n\r\n<!DOCTYPE html>\r\n\r\n<html>\r\n  <head>\r\n\r\n  <\/head>\r\n\r\n  <body>\r\n\r\n    <tiles:insertAttribute name=\"header\" \/>\r\n    <tiles:insertAttribute name=\"content\" \/>\r\n    <tiles:insertAttribute name=\"footer\" \/>\r\n  <\/body>\r\n<\/html>\r\n<\/pre>\n<p>header.jsp :<\/p>\n<pre lang=\"html\">\r\n<h2><span id=\"Header\">Header<\/span><\/h2>\r\n<\/pre>\n<p>footer.jsp :<\/p>\n<pre lang=\"html\">\r\n<h2><span id=\"Footer\">Footer<\/span><\/h2>\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Contents1 Prerequistes2 Configuration2.1 WebMvcConfig.java2.2 tiles.xml2.3 template2.4 Header2.5 Footer Prerequistes Please read : Java spring &#8211; quickstart Configuration WebMvcConfig.java Set the following beans : @Bean public UrlBasedViewResolver viewResolver() { UrlBasedViewResolver viewResolver = new UrlBasedViewResolver(); viewResolver.setViewClass(TilesView.class); viewResolver.setOrder(1); return viewResolver; } @Bean public TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions(&#8220;\/WEB-INF\/tiles.xml&#8221;); return tilesConfigurer; } tiles.xml Create src\/main\/webapp\/WEB-INF\/tiles.xml [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1547,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1588","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1588"}],"version-history":[{"count":3,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1588\/revisions"}],"predecessor-version":[{"id":1591,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1588\/revisions\/1591"}],"up":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1547"}],"wp:attachment":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}