﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Jim's Space-文章分类-挨踢技術</title><link>http://www.blogjava.net/jim/category/3147.html</link><description>【 ½ • Sekatsim era eht slatrop fo yrevocsid 】</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 08:11:36 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 08:11:36 GMT</pubDate><ttl>60</ttl><item><title>【ProjectT】Tapestry • Quick Start • Introduction</title><link>http://www.blogjava.net/jim/articles/25257.html</link><dc:creator>Jim</dc:creator><author>Jim</author><pubDate>Fri, 23 Dec 2005 11:14:00 GMT</pubDate><guid>http://www.blogjava.net/jim/articles/25257.html</guid><wfw:comment>http://www.blogjava.net/jim/comments/25257.html</wfw:comment><comments>http://www.blogjava.net/jim/articles/25257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jim/comments/commentRss/25257.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jim/services/trackbacks/25257.html</trackback:ping><description><![CDATA[<H2>Pre-requisistes</H2>
<P>首先，你需要一個 Java JDK。我們將會用到一些 <A href="http://jakarta.apache.org/tapestry/tapestry-annotations/">Tapestry Annotation</A>，它需要 JDK 1.5。</P>
<P>教程中的範例由 <A href="http://ant.apache.org/">Ant</A> 構建，需要 1.6.2 或是更高的版本。</P>
<P>所有教程中的源代碼都以一個 tar 文件發佈：tapestry-tutorials.tar.gz，見：<A href="http://howardlewisship.com/downloads/quick-start/">http://howardlewisship.com/downloads/quick-start/</A>。</P>
<P>每個教程都是一個獨立的項目（事實上，它包括了 .project 和 .classpath 文件，因此可以在 <A href="http://www.eclipse.org/">Eclipse</A> 中使用）。此外，tapestry-tutorials 項目中還包含了應用程序所需的庫文件集：Tapestry 庫以及它所依賴的庫文件。</P>
<P style="TEXT-ALIGN: center"><IMG style="WIDTH: 330px; HEIGHT: 180px" alt=tutorials-structure src="http://jakarta.apache.org/tapestry/QuickStart/tutorials-structure.png"></P>
<P>每個教程項目都有著相同的目錄結構：</P>
<P style="TEXT-ALIGN: center"><IMG style="WIDTH: 250px; HEIGHT: 180px" alt=single-tutorial src="http://jakarta.apache.org/tapestry/QuickStart/single-tutorial.png"></P>
<P>src/conf 目錄只有一個 log4j.properties 文件，用於設置應用程序運行時的日誌記錄。</P>
<P>src/context 目錄包含了用於 Web 應用程序歸檔的文件；它包括 HTML、CSS 文件以及圖像。在 WEB-INF 目錄裡則是標準的 web.xml 部署描述文件，加上 Tapestry 相關的文件。</P>
<P>Ant 的 war 標記會編譯 Java 源文件（存儲在 src/java 內），然後創建一個包含編譯後的 classes（在 WEB-INF/classes 內）、src/context 中的內容以及打包在 WEB-INF/lib 裡的所有依賴庫（來自於 tapestry-libraries）的 WAR 文件。這個文件會存儲在目標目錄（在必要時創建）下，然後以項目名稱命名。</P>
<H2>Building and Deploying</H2>
<P>創建一個教程（譯注：即教程中的項目），只需切換到它的目錄下然後執行 ant：</P><PRE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; BACKGROUND-COLOR: rgb(192,192,192)">bash-2.05b$ ant<BR>Buildfile: build.xml<BR><BR>compile:<BR> [mkdir] Created dir: C:\workspace\directlink\target\classes<BR> [javac] Compiling 1 source file to C:\workspace\directlink\target\classes<BR> [javac] Note: C:\workspace\directlink\src\java\tutorials\directlink\pages\Home.java uses or overrides a deprecated API.<BR> [javac] Note: Recompile with -Xlint:deprecation for details.<BR><BR>war:<BR> [war] Building war: C:\workspace\directlink\target\helloworld.war<BR><BR>BUILD SUCCESSFUL<BR>Total time: 8 seconds<BR>bash-2.05b$<BR></PRE>
<P>最終生成的 WAR 文件就可以部署到任何的 Servlet 容器上了，像 <A href="http://sf.net/projects/jetty/">Jetty</A>&nbsp; 或是 <A href="http://jakarta.apache.org/tomcat/">Tomcat</A>。</P><img src ="http://www.blogjava.net/jim/aggbug/25257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jim/" target="_blank">Jim</a> 2005-12-23 19:14 <a href="http://www.blogjava.net/jim/articles/25257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【ProjectT】Tapestry</title><link>http://www.blogjava.net/jim/articles/25256.html</link><dc:creator>Jim</dc:creator><author>Jim</author><pubDate>Fri, 23 Dec 2005 11:11:00 GMT</pubDate><guid>http://www.blogjava.net/jim/articles/25256.html</guid><wfw:comment>http://www.blogjava.net/jim/comments/25256.html</wfw:comment><comments>http://www.blogjava.net/jim/articles/25256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jim/comments/commentRss/25256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jim/services/trackbacks/25256.html</trackback:ping><description><![CDATA[<P><SPAN style="FONT-WEIGHT: bold">Source:</SPAN> <A href="http://jakarta.apache.org/tapestry/">Jakarta Tapestry</A> </P>
<DL>
<DT style="FONT-WEIGHT: bold">Quick Start</DT>
<DD><A href="http://spaces.msn.com/members/jwing/Blog/cns%211pdbl0E9tGum81JsiV9VBcWQ%21990.entry">Introduction</A></DD>
<DD><A href="http://spaces.msn.com/members/jwing/Blog/cns%211pdbl0E9tGum81JsiV9VBcWQ%21991.entry">Hello World</A></DD>
<DD><A href="http://spaces.msn.com/members/jwing/Blog/cns%211pdbl0E9tGum81JsiV9VBcWQ%21999.entry">DirectLink</A></DD>
<DD>Forms</DD>
<DT style="FONT-WEIGHT: bold">Users Guide</DT>
<DD>Introduction</DD>
<DD>Page and component templates</DD>
<DD>Component parameter bindings</DD>
<DD>Listener methods</DD>
<DD>Page Classes</DD>
<DD>Input Validation</DD>
<DD>Creating Tapestry components</DD>
<DD>Property Injection</DD>
<DD>Localization</DD>
<DD>Managing server-side state</DD>
<DD>HiveMind Integration</DD>
<DD>Friendly URLs</DD>
<DD>Page Events</DD>
<DD>Configuring Tapestry</DD>
<DD>Tapestry Object Properties</DD>
<DD>Upgrading from 3.0</DD>
<DD>Specification DTDs</DD>
<DD>Script Template DTD</DD>
<DT style="FONT-WEIGHT: bold">Framework</DT>
<DD>Overview</DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Components</DT>
<DD>ActionLink</DD>
<DD>Any</DD>
<DD>Block</DD>
<DD>Body</DD>
<DD>Button</DD>
<DD>Checkbox</DD>
<DD>Conditional</DD>
<DD>DatePicker</DD>
<DD>Delegator</DD>
<DD>Describe</DD>
<DD>DirectLink</DD>
<DD>Else</DD>
<DD>ExceptionDisplay</DD>
<DD>ExternalLink</DD>
<DD>FieldLabel</DD>
<DD>For</DD>
<DD>Foreach</DD>
<DD>Form</DD>
<DD>Frame</DD>
<DD>GenericLink</DD>
<DD>Hidden</DD>
<DD>If</DD>
<DD>Image</DD>
<DD>ImageSubmit</DD>
<DD>Insert</DD>
<DD>InsertText</DD>
<DD>InvokeListener</DD>
<DD>LinkSubmit</DD>
<DD>ListEdit</DD>
<DD>Option</DD>
<DD>PageLink</DD>
<DD>PropertySelection</DD>
<DD>Radio</DD>
<DD>RadioGroup</DD>
<DD>RenderBlock</DD>
<DD>RenderBody</DD>
<DD>Rollover</DD>
<DD>Script</DD>
<DD>Select</DD>
<DD>ServiceLink</DD>
<DD>Shell</DD>
<DD>Submit</DD>
<DD>TextArea</DD>
<DD>TextField</DD>
<DD>Upload</DD>
<DD>ValidField</DD></DL></DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Reports</DT>
<DD>HiveDoc</DD>
<DD>JavaDoc</DD>
<DD>JUnit Tests</DD>
<DD>Clover Code Coverage</DD></DL></DD>
<DT style="FONT-WEIGHT: bold">Contrib Library</DT>
<DD>Overview</DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Components</DT>
<DD>Choose</DD>
<DD>DateField</DD>
<DD>FormConditional</DD>
<DD>FormTable</DD>
<DD>InspectorButton</DD>
<DD>MaskEdit</DD>
<DD>MultiplePropertySelection</DD>
<DD>NumericField</DD>
<DD>Otherwise</DD>
<DD>Palette</DD>
<DD>Table</DD>
<DD>TableColumns</DD>
<DD>TableFormPages</DD>
<DD>TableFormRows</DD>
<DD>TableRows</DD>
<DD>TablePages</DD>
<DD>TableValues</DD>
<DD>TableView</DD>
<DD>Tree</DD>
<DD>TreeDataView</DD>
<DD>TreeNodeView</DD>
<DD>TreeTable</DD>
<DD>TreeTableDataView</DD>
<DD>TreeTableNodeViewDelegator</DD>
<DD>TreeView</DD>
<DD>ValidatingTextField</DD>
<DD>When</DD></DL></DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Reports</DT>
<DD>HiveDoc</DD>
<DD>JavaDoc</DD>
<DD>JUnit Tests</DD>
<DD>Clover Code Coverage</DD></DL></DD>
<DT style="FONT-WEIGHT: bold">Portlet Support</DT>
<DD>Overview</DD>
<DD>Configuration</DD>
<DD>Coding Issues</DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Reports</DT>
<DD>HiveDoc</DD>
<DD>JavaDoc</DD>
<DD>JUnit Tests</DD>
<DD>Clover Code Coverage</DD></DL></DD>
<DT style="FONT-WEIGHT: bold">Annotations</DT>
<DD>Overview</DD>
<DD>
<DL>
<DT style="FONT-WEIGHT: bold">Reports</DT>
<DD>HiveDoc</DD>
<DD>JavaDoc</DD>
<DD>JUnit Tests</DD>
<DD>Clover Code Coverage</DD></DL></DD></DL><img src ="http://www.blogjava.net/jim/aggbug/25256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jim/" target="_blank">Jim</a> 2005-12-23 19:11 <a href="http://www.blogjava.net/jim/articles/25256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>