<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>neoliao</title>
    <description></description>
    <link>http://neoliao.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>共同学习YUI-EXT（GIRD部分）</title>
        <author>neoliao</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://neoliao.javaeye.com">neoliao</a>&nbsp;
          链接：<a href="http://neoliao.javaeye.com/blog/64418" style="color:red;">http://neoliao.javaeye.com/blog/64418</a>&nbsp;
          发表时间: 2007年03月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">共同学习YUI-EXT（GIRD部分）<br />
当我第一次接触到YUI时，我就有一种把它变成我的东西的冲动，当看到华丽的YUI-EXT时，我知道我已经不能再等了！<br />
让我们一起共同学习吧！</font></p>
<p><font face="Arial">个人认为YUI-EXT做的相当好的是GIRD和LAYOUT，而项目中GIRD用的特别多，所以先从GIRD开始。</font></p>
<p><font face="Arial">由于我们的HERO JACK 同志现在主推ext-1.0（目前版本是ext-1.0-alpha3），我想我们的学习也最好从这个版本开始好了。</font></p>
<p><font face="Arial">一个grid的生成必需依赖下列三个类，Ext.data.Store负责生成数据集，Ext.grid.ColumnModel负责显示数据，而Ext.grid.Grid则负责将这个部分进行组合。具体的用法我们看例子：<br />
&nbsp;Ext.data.Store<br />
&nbsp;Ext.grid.Grid<br />
&nbsp;Ext.grid.ColumnModel<br />
例子1<br />
1.引入相关包（JS和CSS）<br />
</font></p>
<font face="Arial">
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span><span class="string">&quot;stylesheet&quot;</span><span>&nbsp;type=</span><span class="string">&quot;text/css&quot;</span><span>&nbsp;href=</span><span class="string">&quot;../../resources/css/ext-all.css&quot;</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></span> </span></li>
    <li class=""><span><!-- LIBS -->&nbsp;&nbsp;</span> </li>
    <li class="alt"><span><script type=</span><span class="string">"text/javascript"</span><span> src=</span><span class="string">"../../yui-utilities.js"</span><span>>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span><script type=</span><span class="string">"text/javascript"</span><span> src=</span><span class="string">"../../ext-yui-adapter.js"</span><span>>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span><!-- ENDLIBS -->&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span><script type=</span><span class="string">"text/javascript"</span><span> src=</span><span class="string">"../../ext-all.js"</span><span>>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><br />
2.得到数据并生成数据集</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;myData&nbsp;=&nbsp;[ &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;[</span><span class="string">&quot;001&quot;</span><span>,</span><span class="string">&quot;001&quot;</span><span>,</span><span class="string">&quot;neo&quot;</span><span>,</span><span class="string">&quot;pub001001&quot;</span><span>,</span><span class="string">&quot;1982-12-14&nbsp;00:00:00.0&quot;</span><span>,</span><span class="string">&quot;15938478221&quot;</span><span>,</span><span class="string">&quot;1&quot;</span><span>,25,</span><span class="string">&quot;neo&quot;</span><span>], &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;[</span><span class="string">&quot;002&quot;</span><span>,</span><span class="string">&quot;002&quot;</span><span>,</span><span class="string">&quot;luna&quot;</span><span>,</span><span class="string">&quot;pub001002&quot;</span><span>,</span><span class="string">&quot;1983-03-11&nbsp;00:00:00.0&quot;</span><span>,</span><span class="string">&quot;13751596026&quot;</span><span>,</span><span class="keyword">null</span><span>,23,</span><span class="string">&quot;lulu&quot;</span><span>], &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;[</span><span class="string">&quot;003&quot;</span><span>,</span><span class="string">&quot;003&quot;</span><span>,</span><span class="string">&quot;bear&quot;</span><span>,</span><span class="string">&quot;pub001002&quot;</span><span>,</span><span class="keyword">null</span><span>,</span><span class="keyword">null</span><span>,</span><span class="keyword">null</span><span>,</span><span class="keyword">null</span><span>,</span><span class="keyword">null</span><span>]] &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;]; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;ds&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Ext.data.Store({ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy:&nbsp;</span><span class="keyword">new</span><span>&nbsp;Ext.data.MemoryProxy(myData), &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader:&nbsp;</span><span class="keyword">new</span><span>&nbsp;Ext.data.ArrayReader({id:&nbsp;0},&nbsp;[ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;{name:&nbsp;'staffId'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'staffCode'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'staffName'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'sex'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'brithday'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'mobilePhone'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'memo'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'age'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;'nickname'} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.load(); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>3.设置显示样式</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span class="comment">//custom&nbsp;renderer&nbsp;function </span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span></span><span class="keyword">function</span><span>&nbsp;castDate(value){ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;</span><span class="keyword">if</span><span>(value!=</span><span class="keyword">null</span><span>) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;&nbsp;&nbsp;value.substring(0,10); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;value &nbsp;&nbsp;</span> </li>
    <li class=""><span>} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;</span><span class="keyword">var</span><span>&nbsp;colModel&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Ext.grid.ColumnModel([ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;姓名&quot;</span><span>,&nbsp;width:&nbsp;200,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,&nbsp;locked:</span><span class="keyword">false</span><span>,&nbsp;dataIndex:&nbsp;'staffName'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;性别&quot;</span><span>,&nbsp;width:&nbsp;150,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,&nbsp;dataIndex:&nbsp;'sex'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;出生日期&quot;</span><span>,&nbsp;width:&nbsp;150,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,renderer:&nbsp;castDate,&nbsp;dataIndex:&nbsp;'brithday'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;年龄&quot;</span><span>,&nbsp;width:&nbsp;150,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,&nbsp;dataIndex:&nbsp;'age'}, &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;手机&quot;</span><span>,&nbsp;width:&nbsp;150,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,&nbsp;dataIndex:&nbsp;'mobilePhone'}, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;{header:&nbsp;</span><span class="string">&quot;备注&quot;</span><span>,&nbsp;width:&nbsp;120,&nbsp;sortable:&nbsp;</span><span class="keyword">true</span><span>,&nbsp;dataIndex:&nbsp;'memo'} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>]); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>4.组合并在页面生成一个Grid</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span class="comment">//create&nbsp;the&nbsp;Grid </span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span></span><span class="keyword">var</span><span>&nbsp;grid&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Ext.grid.Grid('grid-example',&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;ds:&nbsp;ds, &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;cm:&nbsp;colModel &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>}); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;grid.render();&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><br />
&nbsp;说明：&nbsp;1.第一步应该没有什么大问题，只要注意加载顺序就OK了<br />
&nbsp;2.数据集的名堂很多，但我们只要抓两个要点就没问题了，一是数据从哪里来（proxy参数决定），二是怎样读取这些数据（reader参数决定）<br />
&nbsp;来源方式主要由类MemoryProxy，HttpProxy和ScriptTagProxy决定，类名表示来源方式，参数决定来源路径，这个例子用的是MemoryProxy，参数是一个数组变量名，表示数据来源于一个内存中的数组，数据来源搞定以后，我们要解析这个数据，不同的数据类型要用到不同的reader，这个例子用的是数组，所以我们要用一个ArrayReader进行解析。<br />
&nbsp;3.显示方面要注意的是renderer，当我们想让显示的数据并不完全按照得到的数据来显示时，我们就要用到这个参数，YUI-EXT提供了很多内置的renderer，当然也提供自定义的renderer，使用起来很简单，一看就会。<br />
&nbsp;4.倒子中'grid-example'中指示GRID要显示的位置，页面上的一个</p>
<div id="grid-example"></div>
<p>&nbsp;</p>
<p><font face="Arial">&nbsp;好像搞定了，SO EASY?<br />
&nbsp;不过实际工作中不会出现如此简单的GRID，通常的做法是要从数据库中取值再显示到GRID，想做就做，JUST DO IT!<br />
&nbsp;个人开发环境（Strust1.1+Hibernate3+tomcat5.0+jdk1.4.2）<br />
&nbsp;例子２（取数据库中的值并显示到GIRD）<br />
&nbsp;1.取数据库并将值存入FORMBEAN<br />
</font></p>
<font face="Arial">
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>Session&nbsp;session&nbsp;=&nbsp;HibernateUtil.getSessionFactory().getCurrentSession();&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>session.beginTransaction(); &nbsp;&nbsp;</span> </li>
    <li class=""><span>List&nbsp;results&nbsp;=&nbsp;session.createQuery(</span><span class="string">&quot;select&nbsp;staff.staffId,&nbsp;staff.staffCode,&nbsp;staff.staffName,&nbsp;staff.sex,&nbsp;staff.brithday,&quot;</span><span>&nbsp;+ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="string">&quot;staff.mobilePhone,staff.memo,staff.age,staff.nickname&nbsp;from&nbsp;Staff&nbsp;as&nbsp;staff&quot;</span><span>).list(); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>session.beginTransaction().commit(); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>JSONArray&nbsp;ja&nbsp;=&nbsp;JSONArray.fromObject(results); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>myform.setStaffdata(ja.toString()); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">return</span><span>&nbsp;mapping.findForward(</span><span class="string">&quot;listpage&quot;</span><span>); &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>２。将例１作相应改动就ＯＫ<br />
</p>
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c">
    <li class="alt"><span><span></span></span></li>
    <li class=""><span>&nbsp;</span><span class="keyword">var</span><span>&nbsp;myData&nbsp;=　eval(<!--taffform.getStaffdata(-->);&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><br />
说明：真的就这么简单？？不，如果这么简单，还要程序员做什么，招几个打字员就ＯＫ了。<br />
问题是层出不穷的。。<br />
第一步用了一个net.sf.json.JSONArray类，这是一个开源项目，能将各种形式的数据转变成JSONArray（为什么要用JSONArray？因为JSON是javascript标准的一部分，它跟js的合作将比ＸＭL愉快），其中就包括Hibernate所比较喜欢的List.这样一来，我们就省了很多数据转化的工作，但是事实证明net.sf.json.JSONArray是个不错的轮子，却不是我们最想要的轮子。<br />
将Hibernate查询得到的List转化成JSONArray的使用过程中会出现这样一些问题。<br />
1.生成不同的JSONArray<br />
相信对HIBERNATE有所了解的人都知道HQL语句&quot;select 所有列 from Staff as staff&quot;和&quot;from Staff&quot;得到的东西并不一样前一个得到的是一个Object[],而后面得到的是Staff[],将两个List转化得到的JSONArray也不一样，前一个是普通JS数组，类似[[&quot;001&quot;,&quot;001&quot;,&quot;neo&quot;],[&quot;002&quot;,&quot;002&quot;,&quot;luna&quot;]]而后一个得到的是一个标准的砓JSONArray,类似[{&quot;sex&quot;:&quot;pub001001&quot;,&quot;nickname&quot;:&quot;neo&quot;},{&quot;sex&quot;:&quot;pub001002&quot;,&quot;nickname&quot;:&quot;lulu&quot;}],这个问题并不难解决,在前台页面用不同的reader就OK了.<br />
2.日期转化问题<br />
第二个问题rocker96兄也遇到过,就是数据库中查找出的DATE对象,变成了这个死样子(&quot;brithday&quot;:{&quot;month&quot;:11,&quot;day&quot;:2,&quot;year&quot;:82,&quot;nanos&quot;:0,&quot;time&quot;:408643200000,&quot;seconds&quot;:0,&quot;timezoneOffset&quot;:-480,&quot;date&quot;:14,&quot;hours&quot;:0,&quot;minutes&quot;:0}),rocker96提议在前台解决,也提出过方案,不过我个人认为对于YUI-EXT这套框架,前台小姐已经够忙的了,还是在后台那帮兄弟做完的好.问题出现的原因是JSONArray没有对Date对象进行处理,决定修改JSONArray源码.代码不多,通过DEBUG找到处理的函数(Hibernate的两种查询方法所得到的不同的List所在的处理方法不同),并加上</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">if</span><span>(value&nbsp;</span><span class="keyword">instanceof</span><span>&nbsp;Timestamp){ &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;System.out.println(</span><span class="string">&quot;cast&nbsp;date&nbsp;to&nbsp;string!&quot;</span><span>); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;value&nbsp;=&nbsp;value.toString();&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><br />
日期变成了字符串&quot;1982-12-14 00:00:00.0&quot;,前台再用一个renderer,搞定.</p>
<p><font face="Arial">YUI及YUI所衍生YUI-EXT给我们系统重构提供一些很不错的方案,代码规范,扩展性好,又有很好的开发文档支持及数量和质量都不错的用户群,希望有一天会出现一套MY-YUI.</font></p>
<p><font face="Arial">下次想和大家分享一下GridEditor,可编辑的GIRD</font></p>
<p><font face="Arial">谢谢rocker96,给了我很多信息.谢谢,希望能交个朋友.</font></p>
<p><font face="Arial"><br />
</font>&nbsp;</p>
</font></font><font face="Arial"></font><font face="Arial"></font>
          <br/><br/>
          <span style="color:red;">
            <a href="http://neoliao.javaeye.com/blog/64418#comments" style="color:red;">已有 <strong>18</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 Mar 2007 19:48:00 +0800</pubDate>
        <link>http://neoliao.javaeye.com/blog/64418</link>
        <guid>http://neoliao.javaeye.com/blog/64418</guid>
      </item>
  </channel>
</rss>