﻿<?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-VincentChen‘s Blog-随笔分类-JSF</title><link>http://www.blogjava.net/Vencent/category/7001.html</link><description>&lt;font color='orange'&gt;本博客仅为收集所用。在此对原作者表示感谢。&lt;/font&gt;
&lt;div class="custom"&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6256612161572960";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text";
google_ad_channel ="";
google_page_url = document.location;
google_color_border = ["FFDDAA","FFDDAA","FFDDAA","FFDDAA"];
google_color_bg = ["FFDDAA","FFDDAA","FFDDAA","FFDDAA"];
google_color_link = ["FFDDAA","0033FF","00008B","99CC33"];
google_color_url = ["999999","0033FF","00008B","FFCC00"];
google_color_text = ["0033FF","AA9999","0033FF","AA9999"];
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 17:43:00 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 17:43:00 GMT</pubDate><ttl>60</ttl><item><title>转载：Tree2实践</title><link>http://www.blogjava.net/Vencent/archive/2006/01/14/27990.html</link><dc:creator>Vincent Chen</dc:creator><author>Vincent Chen</author><pubDate>Fri, 13 Jan 2006 19:43:00 GMT</pubDate><guid>http://www.blogjava.net/Vencent/archive/2006/01/14/27990.html</guid><wfw:comment>http://www.blogjava.net/Vencent/comments/27990.html</wfw:comment><comments>http://www.blogjava.net/Vencent/archive/2006/01/14/27990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Vencent/comments/commentRss/27990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Vencent/services/trackbacks/27990.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 9pt; font-family: 宋体;">通过一次小小的实践，终于了解如何使用</span><span style="font-size: 9pt;" lang="EN-US">tomahawk</span><span style="font-size: 9pt; font-family: 宋体;">中的</span><span style="font-size: 9pt;" lang="EN-US">tree2</span><span style="font-size: 9pt; font-family: 宋体;">这个组件了，并且写了小段程序，从</span><span style="font-size: 9pt;" lang="EN-US">xml</span><span style="font-size: 9pt; font-family: 宋体;">中读取树的结构，生成一个</span><span style="font-size: 9pt;" lang="EN-US">tree</span><span style="font-size: 9pt; font-family: 宋体;">，不过</span><span style="font-size: 9pt;" lang="EN-US">tree2</span><span style="font-size: 9pt; font-family: 宋体;">不能直接和</span><span style="font-size: 9pt;" lang="EN-US">xml</span><span style="font-size: 9pt; font-family: 宋体;">绑定是一个遗憾，那样就会省不少事情了。记下一点心得，以供后来参考了。</span><span style="font-size: 9pt;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt;" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 9pt; font-family: 宋体;">对</span><span style="font-size: 9pt;" lang="EN-US">tree2</span><span style="font-size: 9pt; font-family: 宋体;">的操作分为两部分，一部分是在页面中通过</span><span style="font-size: 9pt;" lang="EN-US">tag</span><span style="font-size: 9pt; font-family: 宋体;">定义样式相关的东西，一部分就是通过编程添加树的节点，起初看了</span><span style="font-size: 9pt;" lang="EN-US">sample</span><span style="font-size: 9pt; font-family: 宋体;">以后总是以为这东西有多么的复杂，其实逻辑是很简单的，只是</span><span style="font-size: 9pt;" lang="EN-US">sample</span><span style="font-size: 9pt; font-family: 宋体;">中定义了多种不同的样式的节点，看上去很复杂而已。</span><span style="font-size: 9pt;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 9pt; font-family: 宋体;">下面附上我对</span><span style="font-size: 9pt;" lang="EN-US">sample</span><span style="font-size: 9pt; font-family: 宋体;">简化过的这段</span><span style="font-size: 9pt;" lang="EN-US">tag</span><span style="font-size: 9pt; font-family: 宋体;">来说明一下。</span><span style="font-size: 9pt;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">t</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:tree2 value=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">#{</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US">catalog.node</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">}</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> var=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"node"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> id=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"clientside"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> varNodeToggler=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"t"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> &gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet name=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"folder"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">h</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:panelGroup&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet name=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"expand"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">t</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:graphicImage value=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"images/yellow-folder-open.png"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> rendered=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">#{</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US">t.nodeExpanded</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">}</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> border=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"0"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">/&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;/</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet name=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"collapse"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">t</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:graphicImage value=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"images/yellow-folder-closed.png"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> rendered=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">#{</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US">!t.nodeExpanded</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">}</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US"> border=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"0"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">/&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;/</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">h</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:outputText value=</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">#{</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US">node.description</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">}</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: blue; font-family: 'Courier New';" lang="EN-US">"</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">/&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;/</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">h</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:panelGroup&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: 'Courier New';" lang="EN-US"><span style="">&nbsp;&nbsp;&nbsp; </span></span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;/</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">f</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:facet&gt;</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">&lt;/</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkred; font-family: 'Courier New';" lang="EN-US">t</span><span style="background: white none repeat scroll 0% 50%; font-size: 9pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: darkblue; font-family: 'Courier New';" lang="EN-US">:tree2&gt;</span><span style="font-size: 9pt; color: darkblue; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tree2</span><span style="font-size: 9pt; font-family: 宋体;">的主</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tag</span><span style="font-size: 9pt; font-family: 宋体;">定义了</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tree</span><span style="font-size: 9pt; font-family: 宋体;">的根节点和一些相关的参数。嵌套的那个</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">facet</span><span style="font-size: 9pt; font-family: 宋体;">定义了一种节点的样式，包括展开与关闭时的图片，以及显示的文字内容。</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 9pt; font-family: 宋体;">在程序里面，我们</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">root TreeNodeBase = new TreeNodeBase(…)</span><span style="font-size: 9pt; font-family: 宋体;">来创建一个</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">root</span><span style="font-size: 9pt; font-family: 宋体;">节点，然后通过</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">root.getChildren().add(new TreeNodeBase(…))</span><span style="font-size: 9pt; font-family: 宋体;">为其添加子节点，任何一个节点都可以添加任意多的子节点，通过这样的操作，我们可以很容易的生成一个</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tree</span><span style="font-size: 9pt; font-family: 宋体;">的结构了，实际上，这个</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tree</span><span style="font-size: 9pt; font-family: 宋体;">的结构是通过递归从</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">xml</span><span style="font-size: 9pt; font-family: 宋体;">中读取出来，生成一个和</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">xml tree</span><span style="font-size: 9pt; font-family: 宋体;">完全相同的结构。</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: 9pt; font-family: 宋体;">除了明白如何去用这个</span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US">tree2</span><span style="font-size: 9pt; font-family: 宋体;">之外的收获就是，终于明白了如何去通过递归方法遍历一个树形结构，虽然在学校里学过遍历的算法，也抄过例程，但从来没有理解过是怎么一回事，终于在实践中理解了，实践才是软件的根本之道。<br></span><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p>&nbsp;&nbsp;&nbsp;程序的其它部分放在附件里面了，如果有兴趣了可以和我讨论tree2，讨论其它JSF的东西。<a href="../../Files/steady/catalog.rar"><br></a></o:p></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><a href="/Files/steady/catalog.rar">源文件下载</a></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;">查看 <a HREF="/Vencent/articles/27989.html">解析Tree2</a> 全文<br><span style="font-size: 9pt; font-family: 'Courier New';" lang="EN-US"><o:p></o:p></span></p><img src ="http://www.blogjava.net/Vencent/aggbug/27990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Vencent/" target="_blank">Vincent Chen</a> 2006-01-14 03:43 <a href="http://www.blogjava.net/Vencent/archive/2006/01/14/27990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>