﻿<?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-Tapestry</title><link>http://www.blogjava.net/tapestry/</link><description>记录学习Tapestry专用布格格。很多文章都转载网络。</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:01:32 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:01:32 GMT</pubDate><ttl>60</ttl><item><title>[转]Tapestry内部工作原理的笔记</title><link>http://www.blogjava.net/tapestry/archive/2007/08/03/134293.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Fri, 03 Aug 2007 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/08/03/134293.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/134293.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/08/03/134293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/134293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/134293.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: tapestry的URL形如/examples/app?service=page/Admin<br>能够保证有效运行的一个非常重要的原因是，用有状态的javabean代替无状态的servlet构建一个tapestry应用。page是有状态的，他只能在一个线程里为一个用户处理一个 request，而一个servelet，没有用户的状态，可以在并发线程中为任何数量同时发生的request提供服务。使用有状态的page遇到的问题和使用数据库的连接遇到的问题非常相似&nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/08/03/134293.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/134293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-08-03 17:39 <a href="http://www.blogjava.net/tapestry/archive/2007/08/03/134293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载] tapestry调用javascript一招 </title><link>http://www.blogjava.net/tapestry/archive/2007/04/16/110868.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Mon, 16 Apr 2007 00:41:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/04/16/110868.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/110868.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/04/16/110868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/110868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/110868.html</trackback:ping><description><![CDATA[http://www.javaeye.com/t/4463.html<br><br>&lt;img jwcid="@Any" src="images/btn2.gif" onClick="ognl:yourScriptFun"/&gt;<br><br><img src ="http://www.blogjava.net/tapestry/aggbug/110868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-04-16 08:41 <a href="http://www.blogjava.net/tapestry/archive/2007/04/16/110868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载] @Persist 解释</title><link>http://www.blogjava.net/tapestry/archive/2007/04/11/109855.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Wed, 11 Apr 2007 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/04/11/109855.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/109855.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/04/11/109855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/109855.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/109855.html</trackback:ping><description><![CDATA[from <a href="http://dengyin2000.javaeye.com/blog/47452">http://dengyin2000.javaeye.com/blog/47452</a><br><br><br>a) @Persist("client")<br>b) @Persist("client:page")<br>c) @Persist("client:app")<br><br>a) is the same as b). If you use b) for a property x for page Foo, then<br>you can get back the property only if the navigation is Foo =&gt; Foo. If the<br>navigation is Foo =&gt; Bar =&gt; Foo, then it will be lost when Bar is<br>invoked. In contrast, if you use c), then it will be maintained all<br>the way.<br><br>client 跟 session是一样的效果只是实现的方式不一样， 一个是存在cookie或url中另一个是存在http session中。<br><br>client:page session:page 仅在当前页面有用， 假如转到其他页面 这个属性值就失效了。<br>client:app session:app 对于整个application都有效， 转到其他页面再转回来的话这个值仍然存在。如果我们想让他失效怎么办呢？你可以调用这个方法<span>cycle.forgetPage("YourPageName").</span>
<img src ="http://www.blogjava.net/tapestry/aggbug/109855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-04-11 11:50 <a href="http://www.blogjava.net/tapestry/archive/2007/04/11/109855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Redirect After Post</title><link>http://www.blogjava.net/tapestry/archive/2007/03/30/107567.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Fri, 30 Mar 2007 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/03/30/107567.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/107567.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/03/30/107567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/107567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/107567.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: All interactive programs provide two basic functions: obtaining user input and displaying the results. Web applications implement this behavior using two HTTP methods: POST and GET respectively. This simple protocol gets broken when application returns web page in response to POST request. Peculiarities of POST method combined with idiosyncrasies of different browsers often lead to unpleasant user experience and may produce incorrect state of server application. This article shows how to design &nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/03/30/107567.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/107567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-03-30 23:03 <a href="http://www.blogjava.net/tapestry/archive/2007/03/30/107567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载] Tapestry 4.0 学习笔记v1</title><link>http://www.blogjava.net/tapestry/archive/2007/03/30/107562.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Fri, 30 Mar 2007 14:43:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/03/30/107562.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/107562.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/03/30/107562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/107562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/107562.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://ralf-realman.javaeye.com/blog/post/144266&nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/03/30/107562.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/107562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-03-30 22:43 <a href="http://www.blogjava.net/tapestry/archive/2007/03/30/107562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载] 深入理解Tapestry的Rewind</title><link>http://www.blogjava.net/tapestry/archive/2007/03/30/107560.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Fri, 30 Mar 2007 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/03/30/107560.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/107560.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/03/30/107560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/107560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/107560.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Tapestry的rewind一直是学习和使用Tapestry的难点，rewind是用来处理表单提交的，表单默认使用的是 DirectService来提交。在详细介绍之前，先说明下此文中需要用到的一些概念，首先是表单组件，我这里指的是指继承自 AbstractFormComponent类的组件，例如：TextField、TextArea、Checkbox等，而不是具体的Form组件，表单组件使用时必须在Form组件中，这些组件在rewind时调用继承自AbstractFormComponent的 rewindFormComponent来读取数据，并将数据赋值给容器或者页面。<br>我们来看一下最简单的TextField组件，组件定义如下 &nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/03/30/107560.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/107560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-03-30 22:32 <a href="http://www.blogjava.net/tapestry/archive/2007/03/30/107560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]tapestry中使用iframe(和frame不同) </title><link>http://www.blogjava.net/tapestry/archive/2007/03/22/105628.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Thu, 22 Mar 2007 11:05:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/03/22/105628.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/105628.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/03/22/105628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/105628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/105628.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1. iframe所引用的页面类实现IExternalPage接口和activateExternalPage方法<br><br>2. 持有iframe的页面类中实现一个getIframeRenderer方法:&nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/03/22/105628.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/105628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-03-22 19:05 <a href="http://www.blogjava.net/tapestry/archive/2007/03/22/105628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Howard他老说“I'm thinking about starting a vote to do a preview release of Tapestry 5”</title><link>http://www.blogjava.net/tapestry/archive/2007/01/30/96669.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Tue, 30 Jan 2007 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/01/30/96669.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/96669.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/01/30/96669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/96669.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/96669.html</trackback:ping><description><![CDATA[
		<p>
I've added a new <a href="http://tapestry.apache.org/tapestry5/screencast.html">screencast</a>,
this one showing off the use of the tapestry-simple Maven archetype to
create a new project. It runs about five minutes and shows off how
simple it is to get up and running.
</p>
		<p>
If you haven't built Tapestry 5 locally, you need to remember to add <code>-DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository/</code> to the command line.  

</p>
		<p>I'm thinking about starting a vote to do a preview release of
Tapestry 5, just to get the necessary JARs and archetypes into the
general Maven repository.</p>
		<br />
		<br />
<img src ="http://www.blogjava.net/tapestry/aggbug/96669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-01-30 09:47 <a href="http://www.blogjava.net/tapestry/archive/2007/01/30/96669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]在Tapestry中使用redirect-after-post模式控制表单提交</title><link>http://www.blogjava.net/tapestry/archive/2007/01/29/96582.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Mon, 29 Jan 2007 10:56:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/01/29/96582.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/96582.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/01/29/96582.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/96582.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/96582.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Tapestry中表单的提交有很多问题，刷新导致表单的重复提交、臭名昭著的dirty form warning、<br>显示不友好的URL等，这些都可以使用redirect-after-postpostredirectredirectredirectPagefriendlyUrlurl<br><br>要使用这个模式，不得不提到一个ILinkT4listener:<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/01/29/96582.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/96582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-01-29 18:56 <a href="http://www.blogjava.net/tapestry/archive/2007/01/29/96582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]Google Web Toolkit Modules in Tapestry Pages</title><link>http://www.blogjava.net/tapestry/archive/2007/01/29/96581.html</link><dc:creator>Tapestry</dc:creator><author>Tapestry</author><pubDate>Mon, 29 Jan 2007 10:53:00 GMT</pubDate><guid>http://www.blogjava.net/tapestry/archive/2007/01/29/96581.html</guid><wfw:comment>http://www.blogjava.net/tapestry/comments/96581.html</wfw:comment><comments>http://www.blogjava.net/tapestry/archive/2007/01/29/96581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tapestry/comments/commentRss/96581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tapestry/services/trackbacks/96581.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: The toolkit known as GWT is all about creating dynamic client side javascript widgets and applications. The intriguing part of the toolkit is that these "scripty" bits are written as normal Java source code and are transcoded by the GWT compiler into relatively small and efficient javascript code. A "hosted" environment is provided by the toolkit which embeds a browser where developers can load their GWT enabled pages during development. When a page is loaded into this embedded browser, the GWT &nbsp;&nbsp;<a href='http://www.blogjava.net/tapestry/archive/2007/01/29/96581.html'>阅读全文</a><img src ="http://www.blogjava.net/tapestry/aggbug/96581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tapestry/" target="_blank">Tapestry</a> 2007-01-29 18:53 <a href="http://www.blogjava.net/tapestry/archive/2007/01/29/96581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>