{"id":5648,"date":"2010-12-06T14:22:48","date_gmt":"2010-12-06T13:22:48","guid":{"rendered":"https:\/\/www.artera.net\/it\/blog\/?p=5648"},"modified":"2023-02-27T14:51:56","modified_gmt":"2023-02-27T14:51:56","slug":"creare-siti-dinamici-con-sitemesh-parte-iii","status":"publish","type":"post","link":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/","title":{"rendered":"Creare siti dinamici con Sitemesh &#8211; Parte III"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignleft size-full wp-image-5226\" style=\"margin: 10px 10px 0 0\" title=\"Sitemesh\" src=\"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png\" alt=\"Sitemesh\" width=\"111\" height=\"91\" \/>Da diversi anni ormai ha preso piede l&#8217;utilizzo intelligente dei <em>Cascading Style Sheet<\/em> (<em>CSS<\/em>); in particolar modo, grazie a iniziative come CSS Zen Garden e molti altri a seguire, si \u00e8 dimostrato che \u00e8 possibile avere una gran variet\u00e0 di ottimi layout utilizzando una struttura HTML comune e dei fogli di stile CSS progettati a dovere.<\/p>\n<p><strong>Questo approccio si \u00e8 rivelato molto potente<\/strong> sotto diversi aspetti. Il suo pregio maggiore \u00e8 che diventa possibile rivoluzionare completamente la grafica di un sito agendo (quasi) solamente sui CSS, inoltre questo modo di lavorare si adatta molto bene anche a siti statici, ovvero siti il cui HTML non \u00e8 generato automaticamente. Da ultimo, ma non meno importante, ha educato i web designer alla pulizia e alla razionalit\u00e0, qualit\u00e0 praticamente inesistenti sui primi siti degli anni &#8217;90, permettendo fra l&#8217;altro la nascita di molti framework CSS e convenzioni di progettazione usate tutt&#8217;oggi.<\/p>\n<h2>Cambiare layout da CSS<\/h2>\n<p>Vediamo quindi in semplice esempio <em>una<\/em> delle tecniche pi\u00f9 utilizzate dai &#8220;guru&#8221; del CSS, ovvero il <strong>rendering della pagina con layout diversi<\/strong> in base ad una semplice modifica all&#8217;HTML della pagina. Il trucco \u00e8 molto semplice, si tratta di:<\/p>\n<ul>\n<li>assegnare un attributo <em>id<\/em> al tag &lt;body&gt;;<\/li>\n<li>creare delle regole nel file CSS che posizionano i vari elementi di una pagina in base al valore (se presente) di questo id.<\/li>\n<\/ul>\n<p>Vediamo in concreto come fare, per farlo modificheremo il decorator e i CSS del progetto creato nelle scorse puntate (vedi <a title=\"Creare siti dinamici con sitemesh \u2013 parte I\" href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/creare-siti-dinamici-con-sitemesh-parte-i\" target=\"_blank\" rel=\"noopener noreferrer\">parte I<\/a> e <a title=\"Creare siti dinamici con sitemesh \u2013 parte II\" href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/creare-siti-dinamici-con-sitemesh-parte-ii\" target=\"_blank\" rel=\"noopener noreferrer\">parte II<\/a>).<\/p>\n<p>Copiare questo codice sorgente in <em>main.jsp<\/em>:<\/p>\n<p>[html]<br \/>\n&lt;span style=&quot;font-family: Consolas, Monaco, &#8216;Courier New&#8217;, Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;&quot;&gt;&lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&quot;&lt;\/span&gt;<br \/>\n&lt;pre&gt;   &quot;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&quot;&gt;<br \/>\n&lt;%@ taglib prefix=&quot;decorator&quot; uri=&quot;http:\/\/www.opensymphony.com\/sitemesh\/decorator&quot; %&gt;<br \/>\n&lt;%@ taglib uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/core&quot; prefix=&quot;c&quot; %&gt;<br \/>\n&lt;%@ taglib uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/fmt&quot; prefix=&quot;fmt&quot; %&gt;<br \/>\n&lt;%@ taglib uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/functions&quot; prefix=&quot;fn&quot; %&gt;<br \/>\n&lt;html xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;&gt;<br \/>\n&lt;head&gt;<br \/>\n  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=UTF-8&quot; \/&gt;<br \/>\n  &lt;title&gt;Il mio sito web | &lt;decorator:title default=&quot;Nessun titolo&quot; \/&gt;&lt;\/title&gt;<br \/>\n  &lt;style type=&quot;text\/css&quot;&gt;@import &quot;css\/style.css&quot;;&lt;\/style&gt;<br \/>\n  &lt;decorator:head \/&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;c:set var=&quot;hideBanner&quot;&gt;&lt;decorator:getProperty property=&quot;meta.hideBanner&quot; \/&gt;&lt;\/c:set&gt;<br \/>\n&lt;c:set var=&quot;bodyID&quot;&gt;&lt;decorator:getProperty property=&quot;body.id&quot; writeEntireProperty=&quot;true&quot; \/&gt;&lt;\/c:set&gt;<br \/>\n&lt;body ${bodyID}&gt;<br \/>\n  &lt;div id=&quot;container&quot;&gt;<br \/>\n    &lt;div id=&quot;masthead&quot;&gt;<br \/>\n      &lt;h1&gt;&lt;decorator:title default=&quot;Nessun titolo&quot; \/&gt;&lt;\/h1&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n    &lt;div id=&quot;navigation&quot;&gt;<br \/>\n      &lt;ul&gt;<br \/>\n        &lt;li&gt;&lt;a href=&quot;index.html&quot;&gt;Home&lt;\/a&gt;&lt;\/li&gt;<br \/>\n        &lt;li&gt;&lt;a href=&quot;page2.html&quot;&gt;Page 2&lt;\/a&gt;&lt;\/li&gt;<br \/>\n        &lt;li&gt;&lt;a href=&quot;page3.html&quot;&gt;Page 3&lt;\/a&gt;&lt;\/li&gt;<br \/>\n      &lt;\/ul&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n    &lt;div id=&quot;content-wrap&quot;&gt;<br \/>\n      &lt;div id=&quot;content&quot;&gt;<br \/>\n        &lt;c:if test=&quot;${hideBanner ne &#8216;true&#8217;}&quot;&gt;<br \/>\n          &lt;div style=&quot;border: 1px solid black; width: 468px; height: 60px&quot;&gt;<br \/>\n            Questo \u00e8 un banner pubblicitario<br \/>\n          &lt;\/div&gt;<br \/>\n        &lt;\/c:if&gt;<br \/>\n        &lt;decorator:body \/&gt;<br \/>\n      &lt;\/div&gt;<br \/>\n    &lt;\/div&gt;<br \/>\n  &lt;\/div&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<br \/>\n[\/html]<\/p>\n<p>Da notare l&#8217;utilizzo del tag <em>&lt;decorator:getProperty&gt;<\/em>:<\/p>\n<ul>\n<li><em>property=&#8221;body.id&#8221;<\/em> indica a Sitemesh ti scrivere in output il valore dell&#8217;attributo <em>id<\/em> del tag <em>body<\/em>;<\/li>\n<li><em>writeEntireProperty=&#8221;true&#8221;<\/em> indica a Sitemesh di includere tutto l&#8217;attributo, ovvero se nella pagina da decorare abbiamo:<code>&lt;body id=\"xyz\"&gt;<\/code> verr\u00e0 scritto in output <code>id=\"xyz\"<\/code> e non semplicemente <code>xyz<\/code>;<\/li>\n<li>per una migliore pulizia del codice viene utilizzato, come per la variabile <em>hideBanner<\/em>, il tag &lt;c:set&gt; che assegna il valore di questo attributo alla variabile <em>bodyID<\/em>, in modo da poterla utilizzare con la notazione di <em>Expression Language<\/em> delle JSP (abbreviata con <em>EL<\/em>) in questo modo: <em>${bodyID}<\/em>.<\/li>\n<\/ul>\n<p>Creare ora il file <em>src\/main\/webapp\/css\/style.css<\/em>:<\/p>\n<p>[css]<br \/>\n\/* Stile e layout di default *\/<\/p>\n<p>body {<br \/>\n  background-color: #000;<br \/>\n}<br \/>\ndiv#masthead, div#masthead h1, div#navigation, div#content {<br \/>\n  margin: 0; padding: 0;<br \/>\n}<br \/>\ndiv#container {<br \/>\n  background-color: #00f;<br \/>\n}<br \/>\ndiv#masthead {<br \/>\n  background-color: #f00; color: #fff;<br \/>\n}<br \/>\ndiv#navigation {<br \/>\n  background-color: #ff0;<br \/>\n}<br \/>\ndiv#navigation li {<br \/>\n  display: inline;<br \/>\n  list-style-type: none;<br \/>\n  padding-right: 20px;<br \/>\n}<br \/>\ndiv#content {<br \/>\n  background-color: #fff;<br \/>\n  margin: 0;<br \/>\n}<br \/>\n\/* Layout speciali *\/<br \/>\nbody#layout_2 div#navigation {<br \/>\n  float: left;<br \/>\n  width: 300px;<br \/>\n}<br \/>\nbody#layout_2 div#navigation li {<br \/>\n  display: block;<br \/>\n}<br \/>\nbody#layout_2 div#content-wrap {<br \/>\n  margin-left: 300px;<br \/>\n}<br \/>\n[\/css]<\/p>\n<p>Da notare:<\/p>\n<ul>\n<li>il file \u00e8 diviso in due parti: nella <strong>prima viene definito lo stile<\/strong> e il layout di default per i vari elementi;<\/li>\n<li>nella seconda parte alcuni degli stili vengono <em>sovrascritti<\/em> (ecco perch\u00e9 vengono definiti <em>dopo<\/em>);<\/li>\n<li>gli stili &#8220;speciali&#8221; sono applicati solamente quando il tag &lt;body&gt; ha un attributo <em>id=&#8221;layout_2&#8243;<\/em>;<\/li>\n<li>ad ogni elemento del layout \u00e8 stato assegnato un colore molto forte (e decisamente&#8230; orribile!), per evidenziarne la disposizione.<\/li>\n<\/ul>\n<p>Si consiglia di inserire qualche paragrafo di testo nelle pagine <em>index.html<\/em>, <em>page2.html<\/em> e <em>page3.html<\/em>, ad esempio utilizzando uno dei tanti generatori di <em>Lorem Ipsum<\/em> (vedi linkografia). In questo modo sar\u00e0 possibile testare in maniera pi\u00f9 precisa le modifiche di stile.<\/p>\n<h2>Test delle pagine<\/h2>\n<p>Per verificare i diversi layout, aggiungiamo l&#8217;attributo <em>id=&#8221;layout_2&#8243;<\/em> al tag &lt;body&gt; di <em>src\/main\/webapp\/page3.html<\/em> poi eseguiamo il build del progetto con il comando di Maven:<\/p>\n<pre>mvn package<\/pre>\n<p>In allegato all&#8217;articolo abbiamo messo un archivio contenente il progetto, pronto da testare:<br \/>\nProgetto di esempio (clic per scaricare)<\/p>\n<h2>Linkografia<\/h2>\n<ul>\n<li><a title=\"Creare siti dinamici con sitemesh \u2013 parte I\" href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/creare-siti-dinamici-con-sitemesh-parte-i\" target=\"_blank\" rel=\"noopener noreferrer\">Creare siti dinamici con sitemesh \u2013 parte I<\/a>;<\/li>\n<li><a title=\"Creare siti dinamici con sitemesh \u2013 parte II\" href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/creare-siti-dinamici-con-sitemesh-parte-ii\" target=\"_blank\" rel=\"noopener noreferrer\">Creare siti dinamici con sitemesh \u2013 parte II<\/a>;<\/li>\n<li>CSS Zen Garden;<\/li>\n<li><a title=\"Generatore Lorem Ipsum\" href=\"http:\/\/www.lipsum.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">generatore di <em>Lorem Ipsum<\/em><\/a>;<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" class=\"alignleft size-full wp-image-5226\" style=\"margin: 10px 10px 0 0\" title=\"Sitemesh\" src=\"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.gif\" alt=\"Sitemesh\" width=\"111\" height=\"91\" \/>Da diversi anni ormai ha preso piede l&#8217;utilizzo intelligente dei <em>Cascading Style Sheet<\/em> (<em>CSS<\/em>); in particolar modo, grazie a iniziative come <a title=\"CSS Zen Garden\" href=\"http:\/\/www.csszengarden.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">CSS Zen Garden<\/a> e molti altri a seguire, si \u00e8 dimostrato che \u00e8 possibile avere una gran variet\u00e0 di ottimi layout utilizzando una struttura HTML comune e dei fogli di stile CSS progettati a dovere.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[108],"tags":[127,132,172,173,174,204,162,175],"class_list":["post-5648","post","type-post","status-publish","format-standard","hentry","category-sviluppo","tag-css","tag-html","tag-java","tag-jsp","tag-servlet","tag-sitemesh","tag-template","tag-tomcat"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera<\/title>\n<meta name=\"description\" content=\"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera\" \/>\n<meta property=\"og:description\" content=\"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/\" \/>\n<meta property=\"og:site_name\" content=\"Artera\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artera.net\/\" \/>\n<meta property=\"article:published_time\" content=\"2010-12-06T13:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-27T14:51:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png\" \/>\n<meta name=\"author\" content=\"Sergio Ravera\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergio Ravera\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/\"},\"author\":{\"name\":\"Sergio Ravera\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/48ffb6b3727677643fbfd3ecf0a10aa0\"},\"headline\":\"Creare siti dinamici con Sitemesh &#8211; Parte III\",\"datePublished\":\"2010-12-06T13:22:48+00:00\",\"dateModified\":\"2023-02-27T14:51:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/\"},\"wordCount\":1044,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/Sitemesh.png\",\"keywords\":[\"CSS\",\"HTML\",\"java\",\"jsp\",\"servlet\",\"Sitemesh\",\"template\",\"tomcat\"],\"articleSection\":[\"Sviluppo\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/\",\"name\":\"\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/Sitemesh.png\",\"datePublished\":\"2010-12-06T13:22:48+00:00\",\"dateModified\":\"2023-02-27T14:51:56+00:00\",\"description\":\"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/Sitemesh.png\",\"contentUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/Sitemesh.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/creare-siti-dinamici-con-sitemesh-parte-iii\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creare siti dinamici con Sitemesh &#8211; Parte III\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"name\":\"Artera\",\"description\":\"Swiss Premium Hosting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.artera.net\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\",\"name\":\"Artera\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"width\":300,\"height\":77,\"caption\":\"Artera\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/artera.net\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/artera\\\/\",\"https:\\\/\\\/www.instagram.com\\\/artera_swiss\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/48ffb6b3727677643fbfd3ecf0a10aa0\",\"name\":\"Sergio Ravera\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"caption\":\"Sergio Ravera\"},\"description\":\"Raised in a family tradition of merchants, my entrepreneurial spirit drove me to launch my first e-commerce venture in 1998. My vision and dedication led, in 2002, to the founding of Artera, now a leading brand in premium managed cloud hosting services. As Chief Executive Officer, I lead DHH Switzerland SA, part of the international DHH S.p.A. group, listed on the Milan Stock Exchange with the reference code (AIM \u2013 ISIN: IT0005203622). It is under this brand that the Artera brand continues to grow and thrive. In addition to my commitment to the business world, I am an active researcher in the field of new technologies, always fascinated by cutting-edge innovations in the industry.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/sergioravera\\\/\"],\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/author\\\/sergio-ravera\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera","description":"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","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:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/","og_locale":"it_IT","og_type":"article","og_title":"\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera","og_description":"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","og_url":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/","og_site_name":"Artera","article_publisher":"https:\/\/www.facebook.com\/artera.net\/","article_published_time":"2010-12-06T13:22:48+00:00","article_modified_time":"2023-02-27T14:51:56+00:00","og_image":[{"url":"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png","type":"","width":"","height":""}],"author":"Sergio Ravera","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Sergio Ravera","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#article","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/"},"author":{"name":"Sergio Ravera","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/48ffb6b3727677643fbfd3ecf0a10aa0"},"headline":"Creare siti dinamici con Sitemesh &#8211; Parte III","datePublished":"2010-12-06T13:22:48+00:00","dateModified":"2023-02-27T14:51:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/"},"wordCount":1044,"commentCount":0,"publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"image":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#primaryimage"},"thumbnailUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png","keywords":["CSS","HTML","java","jsp","servlet","Sitemesh","template","tomcat"],"articleSection":["Sviluppo"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/","url":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/","name":"\u2022 Creare siti dinamici con Sitemesh - Parte III - Artera","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#primaryimage"},"image":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#primaryimage"},"thumbnailUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png","datePublished":"2010-12-06T13:22:48+00:00","dateModified":"2023-02-27T14:51:56+00:00","description":"Leggi dal blog: Creare siti dinamici con Sitemesh - Parte III. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","breadcrumb":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#primaryimage","url":"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png","contentUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2010\/11\/Sitemesh.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.artera.net\/it\/sviluppo\/creare-siti-dinamici-con-sitemesh-parte-iii\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.artera.net\/it\/"},{"@type":"ListItem","position":2,"name":"Creare siti dinamici con Sitemesh &#8211; Parte III"}]},{"@type":"WebSite","@id":"https:\/\/www.artera.net\/it\/#website","url":"https:\/\/www.artera.net\/it\/","name":"Artera","description":"Swiss Premium Hosting","publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.artera.net\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.artera.net\/it\/#organization","name":"Artera","url":"https:\/\/www.artera.net\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","contentUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","width":300,"height":77,"caption":"Artera"},"image":{"@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artera.net\/","https:\/\/www.linkedin.com\/company\/artera\/","https:\/\/www.instagram.com\/artera_swiss\/"]},{"@type":"Person","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/48ffb6b3727677643fbfd3ecf0a10aa0","name":"Sergio Ravera","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","caption":"Sergio Ravera"},"description":"Raised in a family tradition of merchants, my entrepreneurial spirit drove me to launch my first e-commerce venture in 1998. My vision and dedication led, in 2002, to the founding of Artera, now a leading brand in premium managed cloud hosting services. As Chief Executive Officer, I lead DHH Switzerland SA, part of the international DHH S.p.A. group, listed on the Milan Stock Exchange with the reference code (AIM \u2013 ISIN: IT0005203622). It is under this brand that the Artera brand continues to grow and thrive. In addition to my commitment to the business world, I am an active researcher in the field of new technologies, always fascinated by cutting-edge innovations in the industry.","sameAs":["https:\/\/www.linkedin.com\/in\/sergioravera\/"],"url":"https:\/\/www.artera.net\/it\/author\/sergio-ravera\/"}]}},"_links":{"self":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/5648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/comments?post=5648"}],"version-history":[{"count":5,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/5648\/revisions"}],"predecessor-version":[{"id":217889,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/5648\/revisions\/217889"}],"wp:attachment":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/media?parent=5648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/categories?post=5648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/tags?post=5648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}