You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bu...@apache.org on 2015/07/02 03:19:54 UTC

svn commit: r956612 - in /websites/production/tapestry/content: cache/main.pageCache creating-the-skeleton-application.html

Author: buildbot
Date: Thu Jul  2 01:19:54 2015
New Revision: 956612

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/creating-the-skeleton-application.html

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/creating-the-skeleton-application.html
==============================================================================
--- websites/production/tapestry/content/creating-the-skeleton-application.html (original)
+++ websites/production/tapestry/content/creating-the-skeleton-application.html Thu Jul  2 01:19:54 2015
@@ -57,7 +57,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><style type="text/css">/*<![CDATA[*/
+<div id="ConfluenceContent"><p>&#160;</p><p>&#160;<style type="text/css">/*<![CDATA[*/
 table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
 table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
 table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
@@ -65,7 +65,7 @@ table.ScrollbarTable td.ScrollbarParent
 table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
 table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
 
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="dependencies-tools-and-plugins.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="tapestry-tutorial.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="exploring-the-project.html">Exploring the Project</a></td><td colspan="1" rowspan="1" class="ScrollbarN
 extIcon"><a shape="rect" href="exploring-the-project.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div><p>Before we can get down to the fun, we have to create an empty application. Tapestry uses a feature of Maven to do this: <strong>archetypes</strong> (a too-clever way of saying "project templates").</p><p>For the tutorial, we're using a fresh install of Eclipse and an empty workspace at <code>/users/joeuser/workspace</code>. You may need to adjust a few things for other operating systems or local paths.</p><h2 id="CreatingTheSkeletonApplication-UsingtheQuickstartArchetype">Using the Quickstart Archetype</h2><p>From Eclipse, we'll use a Maven archetype to create a skeleton Tapestry project.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Maven Behind a Firewall</p><span class="aui-icon aui-icon-small aui-iconfont-info conf
 luence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>If you are behind a firewall/proxy, before performing any Maven downloads, you may need to configure your proxy settings in your Maven settings.xml file (typically in the .m2 subdirectory of your home directory, ~/.m2 or C:\users\joeuser\.m2). Here is an example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>settings.xml</b></div><div class="codeContent panelContent pdl">
+/*]]>*/</style></p><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="dependencies-tools-and-plugins.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="tapestry-tutorial.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="exploring-the-project.html">Exploring the Project</a></td><td colspan="1" rowspan="1" class="Scroll
 barNextIcon"><a shape="rect" href="exploring-the-project.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>Before we can get down to the fun, we have to create an empty application. Tapestry uses a feature of Maven to do this: <strong>archetypes</strong> (a too-clever way of saying "project templates").<p>For the tutorial, we're using a fresh install of Eclipse and an empty workspace at <code>/users/joeuser/workspace</code>. You may need to adjust a few things for other operating systems or local paths.</p><h2 id="CreatingTheSkeletonApplication-UsingtheQuickstartArchetype">Using the Quickstart Archetype</h2><p>From Eclipse, we'll use a Maven archetype to create a skeleton Tapestry project.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Maven Behind a Firewall</p><span class="aui-icon aui-icon-small aui-iconfont-info conflue
 nce-information-macro-icon"></span><div class="confluence-information-macro-body"><p>If you are behind a firewall/proxy, before performing any Maven downloads, you may need to configure your proxy settings in your Maven settings.xml file (typically in the .m2 subdirectory of your home directory, ~/.m2 or C:\users\joeuser\.m2). Here is an example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>settings.xml</b></div><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;settings&gt;
   &lt;proxies&gt;
     &lt;proxy&gt;
@@ -81,7 +81,7 @@ table.ScrollbarTable td.ScrollbarNextIco
   &lt;localRepository&gt;C:/Users/joeuser/.m2/repository&lt;/localRepository&gt;
 &lt;/settings&gt;
 ]]></script>
-</div></div><p>Of course, adjust the <code>localRepository</code> element to match the correct path for your computer.</p></div></div><p>Okay, let's get started creating our new project.</p><p>In Eclipse, go to <strong>File &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; Maven Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/select-a-wizard.png" data-image-src="/confluence/download/attachments/23340356/select-a-wizard.png?version=1&amp;modificationDate=1416675284000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184818" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="select-a-wizard.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>T
 hen click <strong>Next</strong>, <strong>Next</strong> (again), and then on the <strong>Select an Archetype</strong> page click the <strong>Configure</strong> button on the Catalog line. The <strong>Archetype</strong> preferences dialog should appear. Click the <strong>Add Remote Catalog...</strong> button, as shown below:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/add-archetype-catalog.png" data-image-src="/confluence/download/attachments/23340356/add-archetype-catalog.png?version=1&amp;modificationDate=1416675354000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184819" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="add-archetype-catalog.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-
 container-version="62"></span></p><p>As shown above, enter <span class="nolink"><span class="nolink">"http://tapestry.apache.org"</span></span> in the Catalog File field, and "Apache Tapestry" in the Description field.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>If you want to try an unreleased (alpha or beta) version of Tapestry, use <span class="nolink">the https://repository.apache.org/content/repositories/staging</span> archetype catalog file instead.</p></div></div><p>Click <strong>OK</strong>, then<strong> OK</strong> again.</p><p>On the Select an Archetype dialog (shown below), select the newly-added Apache Tapestry catalog, then select the "quickstart" artifact from the list and click <strong>Next</strong>.</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedde
 d-image" src="creating-the-skeleton-application.data/select-archetype.png" data-image-src="/confluence/download/attachments/23340356/select-archetype.png?version=1&amp;modificationDate=1416675447000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184820" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="select-archetype.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>Fill in the Group Id, Artifact Id, Version and Package&#160; as follows:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/specify-archetype-parameters.png" data-image-src="/confluence/download/attachments/23340356/specify-archetype-parameters.png?version=1&amp;modificationDate=1416675494000&amp;api
 =v2" data-unresolved-comment-count="0" data-linked-resource-id="49184821" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="specify-archetype-parameters.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>then click Finish.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The first time you use Maven, project creation may take a while as Maven downloads a large number of JAR dependencies for Maven, Jetty and Tapestry. These downloaded files are cached locally and will not need to be downloaded again, but you do have to be patient on first use.</p></div></div><p>After Maven finishes, you'll see 
 a new directory, <code>tutorial in your Package Explorer view in Eclipse.</code></p><h2 id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the Application using Jetty</h2><p>One of the first things you can do is use Maven to run Jetty directly.</p><p>Right-click on the tutorial project in your Package Explorer view and select <strong>Run As &gt; Maven Build... &gt;</strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a "Run Configuration" named "tutorial1" that we'll use throughout this tutorial to start the app:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/run-configuration.png" data-image-src="/confluence/download/attachments/23340356/run-configuration.png?version=2&amp;modificationDate=1416744425000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184822" data-linked-resource-version="2" data-linked-resource-type="attachment" 
 data-linked-resource-default-alias="run-configuration.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>Tapestry runs best with a couple of additional options; click the "JRE" tab and enter the following VM Arguments:</p><pre></pre><p>-XX:MaxPermSize=256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p><p><code><em>(If you're using JDK 1.8 then you should omit the MaxPermSize argument.)</em></code></p><p><code>Here's how it looks:<br clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/run-configuration-jre.png" data-image-src="/confluence/download/attachments/23340356/run-configuration-jre.png?version=2&amp;modificationDate=1416744425000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184
 838" data-linked-resource-version="2" data-linked-resource-type="attachment" data-linked-resource-default-alias="run-configuration-jre.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>Finally, click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying number of downloads, but before you know it, the Jetty servlet container is up and running.</p><p>Once Jetty is initialized (which only takes a few seconds after the first time), you'll see the following in your console:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/console-startup.png" data-image-src="/confluence/download/attachments/23340356/console-startup.png?version=2&amp;modificationDate=1416797756000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id=
 "49184841" data-linked-resource-version="2" data-linked-resource-type="attachment" data-linked-resource-default-alias="console-startup.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p><em>Note the red square icon above. Later on you'll use that icon to stop Jetty before restarting the app.</em></p><p>You can now open a web browser to <a shape="rect" class="external-link" href="http://localhost:8080/tutorial1/" >http://localhost:8080/tutorial1/</a> to see the running application:</p><p>&#160;</p><p><span class="confluence-embedded-file-wrapper image-left-wrapper"><img class="confluence-embedded-image confluence-content-image-border image-left" src="creating-the-skeleton-application.data/startpage.png" data-image-src="/confluence/download/attachments/23340356/startpage.png?version=7&amp;modificationDate=1416798158000&amp;api=v2" d
 ata-unresolved-comment-count="0" data-linked-resource-id="23527711" data-linked-resource-version="7" data-linked-resource-type="attachment" data-linked-resource-default-alias="startpage.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="62"></span></p><p>&#160;</p><div style="clear: both"></div><p style="text-align: left;">The date and time in the middle of the page shows that this is a live application.</p><p>This is a complete little web app; it doesn't do much, but it demonstrate how to create a number of pages sharing a common layout, and demonstrates some simple navigation and link handling. You can see that it has several different pages that share a common layout. (<span style="line-height: 1.4285715;"><em>Layout</em> is a loose term meaning common look and feel and navigation across many or all of the pages of an application. Often an appli
 cation will include a Layout component to provide that commonness.)</span></p><p>&#160;</p><style type="text/css">/*<![CDATA[*/
+</div></div><p>Of course, adjust the <code>localRepository</code> element to match the correct path for your computer.</p></div></div><p>Okay, let's get started creating our new project.</p><p>In Eclipse, go to <strong>File &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; Maven Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/select-a-wizard.png" data-image-src="/confluence/download/attachments/23340356/select-a-wizard.png?version=1&amp;modificationDate=1416675284000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184818" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="select-a-wizard.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>T
 hen click <strong>Next</strong>, <strong>Next</strong> (again), and then on the <strong>Select an Archetype</strong> page click the <strong>Configure</strong> button on the Catalog line. The <strong>Archetype</strong> preferences dialog should appear. Click the <strong>Add Remote Catalog...</strong> button, as shown below:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/add-archetype-catalog.png" data-image-src="/confluence/download/attachments/23340356/add-archetype-catalog.png?version=1&amp;modificationDate=1416675354000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184819" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="add-archetype-catalog.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-
 container-version="63"></span></p><p>As shown above, enter <span class="nolink"><span class="nolink">"http://tapestry.apache.org"</span></span> in the Catalog File field, and "Apache Tapestry" in the Description field.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>If you want to try an unreleased (alpha or beta) version of Tapestry, use <span class="nolink">the https://repository.apache.org/content/repositories/staging</span> archetype catalog file instead.</p></div></div><p>Click <strong>OK</strong>, then<strong> OK</strong> again.</p><p>On the Select an Archetype dialog (shown below), select the newly-added Apache Tapestry catalog, then select the "quickstart" artifact from the list and click <strong>Next</strong>.</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedde
 d-image" src="creating-the-skeleton-application.data/select-archetype.png" data-image-src="/confluence/download/attachments/23340356/select-archetype.png?version=1&amp;modificationDate=1416675447000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184820" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="select-archetype.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>Fill in the Group Id, Artifact Id, Version and Package&#160; as follows:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/specify-archetype-parameters.png" data-image-src="/confluence/download/attachments/23340356/specify-archetype-parameters.png?version=1&amp;modificationDate=1416675494000&amp;api
 =v2" data-unresolved-comment-count="0" data-linked-resource-id="49184821" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="specify-archetype-parameters.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>then click Finish.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The first time you use Maven, project creation may take a while as Maven downloads a large number of JAR dependencies for Maven, Jetty and Tapestry. These downloaded files are cached locally and will not need to be downloaded again, but you do have to be patient on first use.</p></div></div><p>After Maven finishes, you'll see 
 a new directory, <code>tutorial in your Package Explorer view in Eclipse.</code></p><h2 id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the Application using Jetty</h2><p>One of the first things you can do is use Maven to run Jetty directly.</p><p>Right-click on the tutorial project in your Package Explorer view and select <strong>Run As &gt; Maven Build... &gt;</strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a "Run Configuration" named "tutorial1" that we'll use throughout this tutorial to start the app:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/run-configuration.png" data-image-src="/confluence/download/attachments/23340356/run-configuration.png?version=2&amp;modificationDate=1416744425000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184822" data-linked-resource-version="2" data-linked-resource-type="attachment" 
 data-linked-resource-default-alias="run-configuration.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>Tapestry runs best with a couple of additional options; click the "JRE" tab and enter the following VM Arguments:</p><pre></pre><p>-XX:MaxPermSize=256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p><p><code><em>(If you're using JDK 1.8 then you should omit the MaxPermSize argument.)</em></code></p><p><code>Here's how it looks:<br clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/run-configuration-jre.png" data-image-src="/confluence/download/attachments/23340356/run-configuration-jre.png?version=2&amp;modificationDate=1416744425000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="49184
 838" data-linked-resource-version="2" data-linked-resource-type="attachment" data-linked-resource-default-alias="run-configuration-jre.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>Finally, click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying number of downloads, but before you know it, the Jetty servlet container is up and running.</p><p>Once Jetty is initialized (which only takes a few seconds after the first time), you'll see the following in your console:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="creating-the-skeleton-application.data/console-startup.png" data-image-src="/confluence/download/attachments/23340356/console-startup.png?version=2&amp;modificationDate=1416797756000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id=
 "49184841" data-linked-resource-version="2" data-linked-resource-type="attachment" data-linked-resource-default-alias="console-startup.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p><em>Note the red square icon above. Later on you'll use that icon to stop Jetty before restarting the app.</em></p><p>You can now open a web browser to <a shape="rect" class="external-link" href="http://localhost:8080/tutorial1/" >http://localhost:8080/tutorial1/</a> to see the running application:</p><p>&#160;</p><p><span class="confluence-embedded-file-wrapper image-left-wrapper"><img class="confluence-embedded-image confluence-content-image-border image-left" src="creating-the-skeleton-application.data/startpage.png" data-image-src="/confluence/download/attachments/23340356/startpage.png?version=7&amp;modificationDate=1416798158000&amp;api=v2" d
 ata-unresolved-comment-count="0" data-linked-resource-id="23527711" data-linked-resource-version="7" data-linked-resource-type="attachment" data-linked-resource-default-alias="startpage.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="23340356" data-linked-resource-container-version="63"></span></p><p>&#160;</p><div style="clear: both"></div><p style="text-align: left;">The date and time in the middle of the page shows that this is a live application.</p><p>This is a complete little web app; it doesn't do much, but it demonstrate how to create a number of pages sharing a common layout, and demonstrates some simple navigation and link handling. You can see that it has several different pages that share a common layout. (<span style="line-height: 1.4285715;"><em>Layout</em> is a loose term meaning common look and feel and navigation across many or all of the pages of an application. Often an appli
 cation will include a Layout component to provide that commonness.)</span></p><p>&#160;<style type="text/css">/*<![CDATA[*/
 table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
 table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
 table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
@@ -89,7 +89,7 @@ table.ScrollbarTable td.ScrollbarParent
 table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
 table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
 
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="dependencies-tools-and-plugins.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="tapestry-tutorial.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="exploring-the-project.html">Exploring the Project</a></td><td colspan="1" rowspan="1" class="ScrollbarN
 extIcon"><a shape="rect" href="exploring-the-project.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div><p>&#160;</p><p>&#160;</p></div>
+/*]]>*/</style></p><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="dependencies-tools-and-plugins.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugins</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="tapestry-tutorial.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="tapestry-tutorial.html">Tapestry Tutorial</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="exploring-the-project.html">Exploring the Project</a></td><td colspan="1" rowspan="1" class="Scroll
 barNextIcon"><a shape="rect" href="exploring-the-project.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>&#160;<p>&#160;</p></div>
 </div>
 
 <div class="clearer"></div>