﻿<?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-铁手剑谱-随笔分类-Java</title><link>http://www.blogjava.net/SteelHand/category/1169.html</link><description>&lt;strong&gt;上善若水&lt;/strong&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 08:41:17 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 08:41:17 GMT</pubDate><ttl>60</ttl><item><title>Infragistics的JSF组件</title><link>http://www.blogjava.net/SteelHand/archive/2006/06/12/52126.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 12 Jun 2006 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/06/12/52126.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/52126.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/06/12/52126.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/52126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/52126.html</trackback:ping><description><![CDATA[好久不来写blog了，没时间。总算本期课程结束了好几门，才有时间来写上两句，相信这个假期会多些时间过来。<br /><br />前不久，大牌第三方组件厂商Infragistics终于宣布了其JSF组件，这也是除了标准组件、大厂实现（SUN JSF Web UI、IBM JSF extension以及Oracle ADF Faces）、以及开源项目（典型的Apache Myfaces）之外的第一个比较大型的第三方组件。虽然这之前也有一些小型的项目，但是被这种比较牛的组件厂商进入此领域，还是第一次。当然，这个项目还是收购自Otrix，但是凭借Infragistics在ASP组件上的成功，相信不久就会有一套非常好的组件问世。目前所推出的仅仅包括：Tab、Grid、Navigator、table、Tree、menu、Editor几个组件。JSF组件同样归入其NetAdvantage产品线中，由此可见其目标之一斑。<br /><br /><br />另，《JSF in Action》一书，终于要由人民邮件出版了。请大家再等一段时间。<br /><img src ="http://www.blogjava.net/SteelHand/aggbug/52126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-06-12 10:06 <a href="http://www.blogjava.net/SteelHand/archive/2006/06/12/52126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBoss Now in Redhat!</title><link>http://www.blogjava.net/SteelHand/archive/2006/04/11/40383.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 11 Apr 2006 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/04/11/40383.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/40383.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/04/11/40383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/40383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/40383.html</trackback:ping><description><![CDATA[传了很久的Jboss收购案终于被划上了句号，4月10日签署了被RedHat的收购协议，<a href="http://jboss.org/jbossBlog/blog/mfleury/2006/04/10/RedHat_Signs_Definitive_Agreement_to_Acquire_JBoss.txt">详见此处</a>。<br />收购的金额没什么重要，这仅仅是个交易而已，但是，Jboss最终并没有投向Oracle的怀抱，而是戴上了红帽子（in redhat, right?）。这对于JBoss阵营说明了什么？<br />从RH来说，我记得以前RH有几个很好的应用层的项目，比如CCM和Portal，愿自于著名名的ArcDigi,后来成了RH的CMS和portal项目。其中另外一支随着ArcDigi演变成<a href="www.openacs.org">OpenAcs</a>,也是一个极其优秀的基于Tcl/tk的CMS。不知后来为何RH放弃了CCM，被流放到ObjectWeb之下，名字为<a href="http://forge.objectweb.org/projects/byline">ByLine .</a>好像只是搬了个家，从那时候，2004年底起就没什么动作。<br />其实这是一个非常好的基于XML/XSL的 CMS, 英国的地方政府内容管理标准化开源项目就是采用它，不过名称又变为了<a href="http://www.aplaws.org">APLAWS</a>了。<br />据JBoss的Blog和TSS上的新闻说，RH有心转向SOA。但是，JBOSS也是最近才转向SOA的，其实也不是他的强项，都是收购Drool 和JBPM之后，想要打造所谓的JBoss Enterprise Middleware Suite (JEMS)。<br />不过JBoss.org下面还孵化着很多项目呢，有Messaging, ESB， Remoting，EJB3，WebServices等等。实际上，App server的热潮之后，JBoss已经显得有些落寞。不在其他地方拓展，光靠App Server加上 Hibernate之类的工具性东西，也实在没什么前途。<br /><br />据说SUN为RH开发了官方的RPM格式的JVM，RH却瞧不起。这下，有了一直和SUN对这干的JBOSS的帮助，还不翻天了？RH从此进入应用层面的基础设施行列，具体策略如何，我们拭目以待。<br /><br />倒是Oracle失落吗？也未必。Oralce目前是唯一能够和IBM抗衡的应用级的全线提供者，少了开发工具系列，或者说产品生命周期管理PLM。而且，Oralce对开源和其他技术的宽容性要比任何一个大厂商都要好，照顾到PHP，Python，以及.NET等等。Oracle 真应该收购BEA，好像一直价格谈不拢，据说是34亿美元左右。我倒是觉得值得。否则，Oralce永远会活在自己的DB的阴影之下。<br /><br /><br /><br /><img src ="http://www.blogjava.net/SteelHand/aggbug/40383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-04-11 10:06 <a href="http://www.blogjava.net/SteelHand/archive/2006/04/11/40383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一次骑骡子旅行（Mule ESB起步）</title><link>http://www.blogjava.net/SteelHand/archive/2006/03/31/38454.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Fri, 31 Mar 2006 05:04:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/03/31/38454.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/38454.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/03/31/38454.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/38454.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/38454.html</trackback:ping><description><![CDATA[本文是MULE ESB的起步体验. <br />PDF格式，3个分卷。<br /><a target="" class="" title="" href="/Files/SteelHand/Starup%20for%20Mule.part1.rar">下载1</a><br /><a target="" class="" title="" href="/Files/SteelHand/Starup%20for%20Mule.part2.rar">下载2</a><br /><a target="" class="" title="" href="/Files/SteelHand/Starup%20for%20Mule.part3.rar">下载3</a><br /><img src ="http://www.blogjava.net/SteelHand/aggbug/38454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-03-31 13:04 <a href="http://www.blogjava.net/SteelHand/archive/2006/03/31/38454.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse is Sexy!</title><link>http://www.blogjava.net/SteelHand/archive/2006/03/13/34968.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 13 Mar 2006 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/03/13/34968.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/34968.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/03/13/34968.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/34968.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/34968.html</trackback:ping><description><![CDATA[Playboy居然做了Opensource的镜像，据他们说，是因为Eclipse够Sexy。他们的技术人员称自己为“Playboy "tech nerds"”，不知道是为什么。是不是不如那些性感明星来得安逸风光？不知道，呵呵。<br><br>他们还镜像了Apache, FreeBSD等等。地址是： http://mirrors.playboy.com/,也可以通过ftp访问。目前速度很快。<br><br><br>另,MM的 Flex终于改姓Adobe了，如今叫Adobe Flex 2.0, 发布了Beta版本。可以在<a href="http://www.macromedia.com/cfusion/entitlement/index.cfm?sdid=czce&amp;e=labs">http://www.macromedia.com/cfusion/entitlement/index.cfm?sdid=czce&amp;e=labs</a>&nbsp; 这里下载。在我看来，Flex也是非常的Sexy。<br><br><br><img src ="http://www.blogjava.net/SteelHand/aggbug/34968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-03-13 09:46 <a href="http://www.blogjava.net/SteelHand/archive/2006/03/13/34968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>老马的集成模式之概论篇</title><link>http://www.blogjava.net/SteelHand/archive/2006/03/08/34265.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 08 Mar 2006 06:16:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/03/08/34265.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/34265.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/03/08/34265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/34265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/34265.html</trackback:ping><description><![CDATA[Martin的EIP之概论：<a HREF="/Files/SteelHand/1%E4%BD%BF%E7%94%A8%E6%A8%A1%E5%BC%8F%E8%A7%A3%E5%86%B3%E9%9B%86%E6%88%90%E9%97%AE%E9%A2%98.rar">使用模式解决集成问题：</a><br><br><img src ="http://www.blogjava.net/SteelHand/aggbug/34265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-03-08 14:16 <a href="http://www.blogjava.net/SteelHand/archive/2006/03/08/34265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle ADF Faces开源拉</title><link>http://www.blogjava.net/SteelHand/archive/2006/01/25/29175.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 25 Jan 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2006/01/25/29175.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/29175.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2006/01/25/29175.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/29175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/29175.html</trackback:ping><description><![CDATA[Oracle 去年将ADF Faces免费之后，目前又将其捐献出来，给了Apache的Myfaces项目。前些天看到过一些风声，现在<a href="http://www.theserverside.com/news/thread.tss?thread_id=38669">TSS</a>也公布了这一消息。<br><br>这简直是一条很好的消息，这下JSF世界终于可以有丰富的控件使用了。Myfaces本来就非常优秀，整合了Smile之后，如今再得到ADF Faces的Code base，已经兵强马壮，个人认为可以勘作企业应用了。<br><br><br><br><img src ="http://www.blogjava.net/SteelHand/aggbug/29175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2006-01-25 10:20 <a href="http://www.blogjava.net/SteelHand/archive/2006/01/25/29175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts Classic 的变迁（下），从1.1到1.2</title><link>http://www.blogjava.net/SteelHand/archive/2005/12/28/25731.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 28 Dec 2005 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/12/28/25731.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/25731.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/12/28/25731.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/25731.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/25731.html</trackback:ping><description><![CDATA[


<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>Untitled Document</title>


<h1>Struts1.2.4</h1>
<h2>新特征</h2>
<h3>主要修改：</h3>
<p><strong>不赞成特征</strong><strong> </strong><br>
  Struts1.1中已经有很多构造不再赞成使用。许多已经被删除了。所以在升级到1.2.4时，请clean-compile 你的应用，并且使deprecation warnings 被打开。在升级到1.2.4之前强烈建议解决所有decprecated 的用法。最可能应用开发人员的用法是： </p>
<ol>
  <ol>
    <li>org.apache.struts.Action  statics: 如今使用org.apache.struts.Global statics </li>
    <li>Action.perform:  如今使用Action.execute</li>
  </ol>
</ol>
<p>虽然没有被删除也没有被标明为不赞成使用，最好还是将ActionErrors 替换为ActionMessages 以确保正确的操作。 <br>
    <strong>TagUtils </strong><strong>和</strong><strong>ModuleUtils</strong><br>
  许多以前在org.apache.struts.utils.RequestUtils中找到的工具方法如今移动到了org.apache.struts.taglibs.TagUtils 或org.apache.struts.utils.ModuleUtils包中。 <br>
  <strong>GenericDataSource  / GenericConnection </strong><strong>实现被删除</strong><strong> </strong><br>
  datasources  manager 仍然支持，但是我们自己的datasource <em>implementation</em>is 并不被支持。很欢迎你插入自己的DataSource 实现，但是我们没有资源来维护我们自己的实现。如果你的容器不支持DataSource实现，推荐使用Jakarta Commons的 DBCP package。 <br>
  <strong>Validator </strong><strong>增强</strong><strong> </strong></p>
<ol>
  <li>ValidWhen </li>
</ol>
<p>Struts Validator 如今支持ValidWhen  规则，以便一个验证可以依赖于另一个验证。</p>
<ol>
  <li>IntRange  现在可以检测select-one 和radio 字段。比如：这使得我们可以使用一些有效的选项加上一个具有诸如"Choose one" 标题并且值为"-1"的附加选项来组装一个组合框。那么当用户试图提交一个表单时，你可以检测值是否为-1，从而决定是否没有选择选项。 </li>
  <li>你现在可以强制进行客户端Javascript  验证来检测所有约束，而不是停留在第一个错误之处。方法是设置Validator PlugIn上的一个新的属性stopOnFirstError为false。<a href="http://struts.apache.org/struts-doc-1.2.4/userGuide/dev_validator.html#stopOnFirstError"></a> </li>
  <li>"required"  验证现在可以检测checkboxes, radio,select-one, 和 select-multiple 字段类型。参见修改后的Validator 示例来看如何使用这些新的特征。 </li>
  <li>一个标准的validateUrl 规则可以让你能够检测某一个属性是否包含一个格式正确的URL。 </li>
</ol>
<p><strong>DigestingPlugIn</strong><br>
  一个新的标准PlugIn 可以帮助你在application范围内创建你自己的对象图（object graph）。这是创建供Action调用的业务对象的快捷方式。请参见最新的MailReader 示例来看如何使用DigestingPlugin。 <br>
  <strong>ModuleConfigVerifier</strong><br>
  虽然不是全新的，一个标准类，用来验证模块配置，位于PlugIn 包。ModuleConfigVerifier  主要确认Struts对象图的各中组件被载入。但是，开发人员可扩展此类来检查确保Struts 配置文件的内部一致性。 <br>
  <strong>提供了支持Maven的项目文件</strong>.<br>
  <strong>新的配置</strong><strong>DTD</strong><br>
  推荐使用<a href="http://struts.apache.org/dtds/struts-config_1_2.dtd">struts-config_1_2.dtd</a>。新的DTD 添加了两个新的元素&lt;display-name&gt;  和 &lt;description&gt; 到struts-config 元素中。这些元素可用于struts配置文件工具和文档产生工具。在Struts 1.2.x 中，已有的Struts 配置文件可以使用两个版本的DTD 都可载入。 <br>
  <strong>新的</strong><strong>Taglib URIs</strong><br>
  标签库的URI已经被修改已反映Struts从Jakarta 移到了Apache  的顶级项目。为了兼容，使用旧的URI的TLD仍然有效，但是鼓励使用新的URI。 <br>
  <strong>Struts-Chain</strong> <br>
  试验性的，这个新的"contrib" package 使用了Jakarta Sandbox中的Responsibilty  package 的Chainin 来创建一个新的RequestProcessor的Breed。未来版本可能会成为默认实现。.<br>
  <strong>MappingDispatchAction</strong><br>
  一个新的标准Action，将控制转发到ActionMapping 参数命名的一个方法。 <br>
  <strong>Cancel  handlers</strong><br>
  DispatchAction,  LookupDispatchAction, 和  MappingDispatchAction ，如今提供了默认的可以覆写的cancel  handler。也可以指定默认的handler name。 <br>
  <strong>Session-scoped  ActionMessages</strong><br>
  现在你可以将ActionMessages 保存在session 中and  have them cleaned up after the first use。现在除了Action.saveMessages() 将消息保存在session中还有了另外一种选择。在消息已经被访问过一次之后ActionMessages.isAccessed() 返回true。RequestProcessor.processCachedMessages()  查询isAccessed() 已决定是否应该将消息从session中删除。 <br>
  <strong>JA Mailreader</strong><br>
  Struts  Mailreader Example 应用现在包含Japanese 资源文件。 <br>
  <strong>Tiles EL</strong><br>
  Tiles tags 如今可以通过Struts EL taglib使用EL，后者基于JSTL。 <br>
  <strong>Wildcard  Mappings</strong><br>
  现在可以在actiponMapping中使用通配符。详细信息参见Struts Mailreader Example application。 <br>
  <strong>Action  attributes</strong><br>
  html img tag 添加了Action 属性，以匹配html link tag。 <br>
  <strong>Module  attribute</strong><br>
  Forward元素以及多个核心标签中新增一个"module" 属性。这个属性允许你通过名称（或者前缀）指定另一个模块来创建模块间的直接链接。新的module 属性优于contextRelative属性，并且可以常用于"SwitchAction"中。 </p>
<h1>Struts 1.2.7</h1>
<h2>主要修改</h2>
<h3>依赖性</h3>
<p>Struts 对下列组件的依赖性发生了改变： </p>
<table border="1" cellpadding="0" cellspacing="0">
  <tbody><tr>
    <td valign="top" width="340"><br>
      依赖性 </td>
    <td valign="top" width="340"><p>新的版本</p></td>
  </tr>
  <tr>
    <td valign="top" width="340"><p>Commons BeanUtils</p></td>
    <td valign="top" width="340"><p>Version 1.7.0</p></td>
  </tr>
  <tr>
    <td valign="top" width="340"><p>Commons Digester</p></td>
    <td valign="top" width="340"><p>Version 1.6</p></td>
  </tr>
  <tr>
    <td valign="top" width="340"><p>Commons Validator</p></td>
    <td valign="top" width="340"><p>Version 1.1.4</p></td>
  </tr>
  <tr>
    <td valign="top" width="340"><p>Commons Collections</p></td>
    <td valign="top" width="340"><p>removed</p></td>
  </tr>
  <tr>
    <td valign="top" width="340"><p>Commons Lang</p></td>
    <td valign="top" width="340"><p>removed</p></td>
  </tr>
</tbody></table>
<h3>Core Struts</h3>
<h4>Saving Messages in the Session</h4>
<p>在action也新增了一个方法[saveErrors(HttpSession, ActionMessages)]来将<em>errors</em> 保存在Session 中，并且在其第一次被访问之后被自动从Session中删除。这是等同于1.2.4 中message上新增的功能。 </p>
<h4>Re-directing ActionForward</h4>
<p><em>ActionRedirect</em> 是ActionForward  的一个子类，其设计来用于重定向请求，支持在运行时添加参数。 </p>
<h4>Download Action</h4>
<p><em>DownloadAction</em> 是一个提供了下载文件的具体细节的抽象Action。 </p>
<h4>Dispatch Helper</h4>
<p><em>ActionDispatcher</em> 是一个提供<em>DispatchAction</em> 类型的行为但是不必继承自<em>DispatchAction</em>。 </p>
<h4><em>Lazy</em> Validator Form</h4>
<p><em>DynaBean</em> 风格的ActionForm，它不需要其属性被定义，并提供<em>Lazy List</em> 和<em>Lazy Map</em> 行为。 </p>
<h4>jars 中的配置文件 </h4>
<p>配置文件(如. Struts config, Validator config 和 Tiles 配置文件)现在可以被保存在jars。Struts 会像以前一样检查servlet context，但是如果没找到， Struts 会尝试classloader 去查找。 </p>
<h3>Tag Library 改变</h3>
<h4>Highlighting Errors</h4>
<p>Struts现在可以使用HTML Input Tags上的<em> errorKey</em>, <em>errorStyle</em>, <em>errorStyleClass</em> 和 <em>errorStyleId</em> 属性自动高亮错误字段。 </p>
<h4>Readonly / Disabled Forms</h4>
<p>现在可以使用&lt;html:form&gt;  tag的<em>readonly</em> 和<em>disabled</em>属性来禁止或者使全部的字段只读。<br>
    <strong>N.B. </strong><em>readonly</em> 属性只影响&lt;html:text&gt;,  &lt;html:textarea&gt; 和 &lt;html:password&gt; as per the HTML 4 specification。 </p>
<h4>HTML Tag Refactoring</h4>
<p>许多<em>HTML</em>标签都被重构了，以便更易使用。</p>
<ol>
  <li><strong>添加了prepareOtherAttributes()</strong> 方法- 刚好在关闭元素之前调用，提供一个地方来渲染额外的属性。</li>
  <li><em>name</em> 属性渲染如今在<strong>prepareName()</strong> 方法中，以便更易提供定制行为。</li>
  <li><em>value</em> 属性如今在<strong>prepareValue()</strong> 方法中以便更易提供定制行为。</li>
  <li>当渲染一个属性时，这些标签现在使用属性的<em>getter</em> 而不是直接使用实际的属性，这意味着如果你想，比如覆盖TextTag的 <em>styleClass</em> ，那么一个选择是覆盖getStyleClass()方法。</li>
  <li>属性的渲染现在使用一个简单的 <strong>prepareAttribute()</strong> 方法来产生<em>name="attribute"</em> 格式，使多数属性渲染一个一行语句。</li>
</ol>
<h4>Bundle Attribute</h4>
<p><em>bundle</em> 属性被添加到了下列标签：ButtonTag, CancelTag,  CheckboxTag, FileTag, FrameTag, HiddenTag, LinkTag, MultiboxTag, PasswordTag,  RadioTag, ResetTag, SelectTag, SubmitTag, TextTag, TextareaTag。 </p>
<h4>ErrorTag</h4>
<p>现在新增了<strong>header</strong>, <strong>footer</strong>, <strong>prefix</strong>, <strong>suffix</strong><strong>属性。</strong> </p>
<h3>Validator</h3>
<h4>Resource Bundle Support</h4>
<p>Validator 配置文件中(e.g. <em>validation.xml</em>)的&lt;msg&gt; 和 &lt;arg&gt; 元素的<em>bundle</em> 属性现在随同&lt;msg&gt; 的<em>resource</em> 属性一起得到支持。 <br>
    <em>struts-examples</em> webapp 中添加了新的页面来展示对<em>Resource Bundle </em><em>的支持。</em> </p>
<h1>Struts1.2.8</h1>
<h2>主要改变</h2>
<p>Struts 1.2.8 的主要改变是修正了<em>Cross Site Scripting</em> (XSS) 弱点。 </p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/SteelHand/aggbug/25731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-12-28 15:41 <a href="http://www.blogjava.net/SteelHand/archive/2005/12/28/25731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts Classic 的变迁（上），从1.0到1.1</title><link>http://www.blogjava.net/SteelHand/archive/2005/12/28/25728.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 28 Dec 2005 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/12/28/25728.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/25728.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/12/28/25728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/25728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/25728.html</trackback:ping><description><![CDATA[

<u><font color="#ff0000"><i>最近在编写Struts教程的时候，把Struts1.1到1.2的个版本变化总结了一下，希望能够从整体上把握它的变迁脉络，在开发和维护的时候也可以参考参考</i>。</font></u><br><br><br><br>


<h1>Struts1.1的修改</h1>
<h2>新特征</h2>
<h3>引入新的配置DTD</h3>
<p>Struts 1.0 的配置DTD 已经不赞成使用，引入了新的struts-config_1_1.dtd。在Struts 1.1 中，已有的Struts 配置文件可以使用这两个版本的DTD载入。 </p>
<h3>新的Commons 包依赖性</h3>
<p>在Struts中使用了多个Apache Jarkarta commons的组件，而Commons组件并不仅仅可以用来构建Struts应用。在Struts1.1中，所使用的Commons组件已经重构来外部依赖于Jarkarta Commons项目，而不是1.0中的内部版本。 <br>
  下面的Commons包包括了对相应的Struts 1.0 中的类的替代： </p>
<ol>
  <li><strong>BeanUtils </strong>[org.apache.commons.beanutils]： </li>
  <ol>
    <li>org.apache.struts.utils.BeanUtils</li>
    <li>org.apache.struts.utils.ConvertUtils</li>
    <li>org.apache.struts.utils.PropertyUtils.</li>
  </ol>
  <li><strong>Collections </strong>[org.apache.commons.collections]</li>
  <ol>
    <li>org.apache.struts.util.ArrayStack</li>
    <li>org.apache.struts.util.FastArrayList</li>
    <li>org.apache.struts.util.FastHashMap</li>
    <li>org.apache.struts.util.FastTreeMap.</li>
  </ol>
  <li><strong>Digester </strong>[org.apache.commons.digester]</li>
  <ol>
    <li>org.apache.struts.digester.*.</li>
  </ol>
</ol>
<p>下面这几个包现在仍然被Struts框架的各种组件使用： </p>
<ol>
  <li><strong>FileUpload </strong>[org.apache.commons.fileupload]</li>
  <li><strong>Logging </strong>[org.apache.commons.logging]</li>
  <li><strong>Validator </strong>[org.apache.commons.validator]</li>
</ol>
<h3>XML解析器</h3>
<p><strong>另外，</strong>Struts 1.1 需要符合JAXP/1.1 (而不是JAXP/1.0)  API的XML解析器，比如JAXP/1.1 参考实现和Xerces 1.3.1+。 </p>
<h3>源代码</h3>
<p>如果需要从源代码开始构建Struts，请使用Ant  1.4 以上版本。 </p>
<h3>集成Struts Validator</h3>
<p>一个新的Commons Validator组件被集成到Struts 1.1中，包含在新的Validator包中。 </p>
<h3>Tiles </h3>
<p>引入了一个新的JSP模板组装机制Tiles，通过标签库提供集成。 </p>
<h3>Nested </h3>
<p>Nested taglib 绑定到了Struts1.1中，增强了现有Struts标签的功能。 </p>
<h3>新的示例应用</h3>
<p>Struts1.1发布包中包括了针对Validator 和Tiles的新的示例。 </p>
<h3>新的可选组件</h3>
<p>CVS源代码库中新增了一个目录contrib，包含了很有用的，但是没有集成到标准代码基中的扩展。 </p>
<ol>
  <li>Scaffold  – 一个对Commons Scaffold 工具包扩展，旨在提供可重用的构建Web应用的类 </li>
  <li>Struts-EL  – 可选的Struts-EL taglib 使得在Struts 中使用JSTL更加容易。(需要Servlet 2.3 +容器支持)</li>
</ol>
<h3>Action 包的增加</h3>
<p>基本的控制器框架 [org.apache.struts.action]新增了一下特征： </p>
<ol>
  <li>ActionServlet  现在提供了对模块化应用的支持，并且新增了多个扩展点。 </li>
  <li>新增了一个ActionMessages 类，支持ActionErrors功能的一个超集，可以用于通用的消息收集传递，不仅仅针对errors。 </li>
</ol>
<h3>Upload 包</h3>
<p>文件上传类[org.apache.struts.upload]新增了一下特征： </p>
<ol>
  <li>CommonsMultipartRequestHandler：这个新类使用Jakarta Commons FileUpload 包实现了文件上传。这也是Struts的默认文件上传实现。 </li>
</ol>
<h3>Util 包</h3>
<p>工具（utility）类  [org.apache.struts.util]新增了以下特征： </p>
<ol>
  <li>LocalStrings:  修正了与可替换参数相关的消息，以便它不会添加一个外来的无关的字符。 </li>
  <li>LabelValueBean:  一个新类，定义了一个名值对的集合，可以用在&lt;html:options&gt; 和&lt;html:optionsCollection&gt;标签，或者其它地方。 </li>
  <li>MessageResources:  转移包含在特定消息字符串中的单引号。 </li>
  <li>computeParameters:  允许事务令牌是唯一的参数。 </li>
  <li>RequestUtils:  在构建一个查询字符串时，修改来编码一个&amp;号。 </li>
</ol>
<h3>Bean Taglib </h3>
<p><em>struts-bean</em> 标签库[org.apache.struts.taglib.bean]中新增了以下特征： </p>
<ol>
  <li>&lt;bean:write&gt;：加入了format, locale 和  bundle 属性以支持根据用户当前场所进行格式化的功能，格式化来自属性或者来自字符串资源的字符串。 </li>
  <li>&lt;bean:cookie&gt;,  &lt;bean:header&gt;, 或&lt;bean:parameter&gt;：纠正了在标签使用"multiple"属性时，所产生的脚本变量类型。 </li>
  <li>&lt;bean:message&gt;：加入了name, property, 和scope  属性，以便消息资源key 可以动态地从一个bean 或者bean 属性获得。 </li>
</ol>
<h3>HTML Taglib</h3>
<p><em>struts-html</em> [org.apache.struts.taglib.html]加入了如下新特征： </p>
<ol>
  <li>&lt;html:link&gt;:  添加了'action' 属性 </li>
  <li>&lt;html:options&gt;:  如果'property' 属性制定的属性（property）返回null，现在标签将抛出一个错误消息指名实际问题而不是造成NPE。 </li>
  <li>&lt;html:option&gt;  和 &lt;html:options&gt;：添加了'style' 和'styleClass'  属性。 </li>
  <li>&lt;html:optionsCollection&gt;：新标签。提供了一个更清晰的方式来从集合组装HTML options。 </li>
  <li>&lt;bean:message&gt;：添加了'name', 'property' 和'scope'  属性，以便消息资源key 可以动态地从bean获得。 </li>
  <li>&lt;html:messages&gt;：新标签。可以通过新的ActionMessages 类中的一个消息集合进行迭代。 </li>
  <li>ActionForm：现在，此标签在它初始化ActionForm Bean的时候会调用reset() 方法。它也要求被标签所实例化的bean 是ActionForm  的一个子类。 </li>
  <li>&lt;html:image&gt;：添加了'align' attribute。 </li>
  <li>&lt;html:img&gt;：添加了mouse 事件属性('onclick',  'ondblclick', 'onmousedown', 'onmouseup', 'onmouseover', 'onmousemove',  'onmouseout')。 </li>
  <li>SubmitTag,  SelectTag, LinkTag.java, CheckboxTag, ButtonTag, ImageTag, RadioTag, 和TextArea 标签： 添加了indexed 属性。 </li>
</ol>
<h3>Logic Taglib</h3>
<p><em>struts-logic</em> 标签库[org.apache.struts.taglib.logic]加入了如下新特征： </p>
<ol>
  <li>&lt;logic:empty&gt;  和&lt;logic:notEmpty&gt;：新标签。类似于&lt;logic:present&gt; 和&lt;logic:notPresent&gt;，但对空字符串的处理不同。 </li>
</ol>
<h3>Template Taglib </h3>
<p>无变化，但无赞成使用。推荐使用Tiles.<strong> </strong></p>
<h2>运性层面的改变</h2>
<h3>加入了Config Package</h3>
<ol>
  <li>ControllerConfig：添加了inputForward 属性以指示ActionMapping.input是一个forward 而不是URI。 </li>
  <li>ControllerConfig：添加了forwardPattern 和inputPattern  到help 应用面模块的管理页面目录 </li>
  <li>添加了一个新的包以提供更多的灵活性来支持控制器配置和多模块应用的支持。 </li>
</ol>
<h3>Action 包<br></h3>
<p>基本框架(org.apache.struts.action)进行了如下修改或者修正： </p>
<ol>
  <li>Action  类中的所有常数：不赞成使用。提取到新的Globals类中。 </li>
  <li>ActionMapping：如果模块的ControllerConfig bean  [org.apache.struts.config.ControllerConfig]的inputForward  设置为true，input  属性将引用一个ActionForward 而不是模块相对的路径。 </li>
  <li>ActionServlet：添加了convertNull 参数以在组装Form时仿真Struts 1.0 行为。如果设置为true，数值numeric Java  wrapper 类类型 (如java.lang.Integer)  将默认为null (而不是0)。 </li>
  <li>ActionServlet：添加了"config/$foo" 参数，不赞成使用包中的其他参数。 </li>
  <li>ActionForms  和相关类：为了保存资源，现在在响应toString请求的时候使用一个StringBuffer。 </li>
  <li>LookupDispatchAction：添加的新的标准Action，以帮助在国际化的按钮之间进行选择。 </li>
  <li>ActionForm  类：修改来使用ActionServletWrapper 而不是暴露ActionServlet。 </li>
  <li>ActionServletWrapper  类：添加的新类，用于ActionForm，以防止ActionServlet 的公开字符串属性被通过查询字符串改写。 </li>
  <li>Action.MAPPING_KEY的 request 属性： 如果没有指定form bean，无条件地将选择的mapping 传递为请求属性("org.apache.struts.action.mapping.instance")。 </li>
  <li>ActionServlet:避免了在初始化Servlet失败的时候导致的NullPointerException。 </li>
  <li>ActionForm  类：现在是真正的serializable，因为两个非serializable 的实例变量(servlet 和multipartRequestHandler) 已经成为transient。但是，如果你的确需要序列化和解序列化这个实例，你要自己负责重设这两个属性。 </li>
  <li>ActionMessages  和ActionErrors：The initial order a property/key is added in is  now retained.</li>
  <li>processActionForward():  不赞成，推荐使用processForwardConfig</li>
</ol>
<h3>Upload包</h3>文件上传 (package org.apache.struts.upload) [ Upload 应用的一部分]作了如下修改和修正： 
<ol>
  <li>CommonsMultipartRequestHandler：基于Jakarta Commons FileUpload 包的文件上传的新实现。这个新实现如今是默认实现。 </li>
  <li>BufferedMultipartInputStream：解决了丢失字节的问题。 </li>
  <li>ArrayIndexOutOfBoundsException：解决了已知的错误。 </li>
  <li>Multipart  requests：Better reporting for premature closing  of input streams while reading multipart requests.</li>
  <li>新行字符（New line  characters）：解决了上传和新换行字符时导致的文件损坏问题。 </li>
</ol>
<h3>Utility包</h3><p>utilities  (package org.apache.struts.util)发生如下修改和修正： </p>
<ol>
  <li>RequestUtils：添加了对ControllerConfig 的forwardPattern,  pagePattern, 和inputForward 属性的支持。 </li>
  <li>GenericDataSource：不赞成。修改为作为[org.apache.commons.dbpc.BasicDataSource]的一个薄的Wrapper。建议直接使用BasicDataSource 或其它兼容组件。 </li>
  <li>RequestUtils  类：修改为使用ActionServletWrapper而不是暴露 ActionServlet。 </li>
  <li>为getActionErrors 和 getActionMessages 方法添加了错误消息。 </li>
  <li>getActionErrors  和 getActionMessages：添加了根据基于传入的消息关键字从Request范围获取的对象来产生正确的相应对象的方法。 </li>
  <li>ActionErrors  或 ActionMessages：创建一个这种对象的逻辑被移到了RequestUtils中的一个工具方法。.</li>
  <li>JspException  消息：现在在RequestUtils中生成。 </li>
  <li>ConvertUtils.convertCharacter()：现在将检测空字符串并返回默认值。 </li>
</ol>
<h3>Bean Taglib包</h3><em>struts-bean</em> c标签库  [org.apache.struts.taglib.bean]发生了如下修改和修正： 
<ol>
  <li>&lt;html:errors&gt;：当指定了属性标签时，如果指定的属性没有发生错误，则不会输出错误。而前面的错误将总是会被输出。未来的增强版本将包括额外的属性来关闭header 或  footer。 </li>
  <li>将helper 方法从"private"改为  "protected" 。 </li>
</ol>
<h3>HTML Taglib 包</h3>
<p><em>struts-html</em> 标签库(package  org.apache.struts.taglib.html)发生了如下修改和修正： </p>
<ol>
  <li>FormTag：修正为，当指定了action mapping的名称时，要排除查询字符串。 </li>
  <li>ImgTag：如果只有一个参数，能正确地URLEncode 查询字符串参数。 </li>
  <li>MultiboxTag.doAfterBody():：修正为返回SKIP_BODY 而不是SKIP_PAGE。 </li>
  <li>Errortag：不赞成使用defaultLocale方法。 </li>
</ol>
<h3>Documentation 示例应用</h3>
<p>Struts  Documentation 应用(对应Struts  网站的内容)发生了如下修改： </p>
<ol>
  <li>重新组织了资源到单独的页面中。 </li>
  <li>在Tag Developers Guide中，添加了更详细的文件上传要求。 </li>
  <li>在Building View  Components，澄清了额外的i18n 支持可以由浏览器提供，并且超出了框架的范围。 </li>
  <li>在Building Controller  Components一节，文档 'validating' init-param，添加了各种参数的默认值，澄清了某些web.xml 设置不是Struts特定的。 </li>
  <li>Tag  library 文档：移到User's Guide下。 </li>
</ol>
<h3>MailReader 示例应用</h3>
<p>Struts  MailReader Example Application 发生如下修改和修正： </p>
<ol>
  <li>添加了应用资源的 Russian 和Japanese 翻译，并且设置JSP的字符集为"UTF-8"以便其可以显示English 或Japanese。 </li>
  <li>在Struts配置文件中交换了Edit mappings的"attribute"  属性的"name" 。 </li>
  <li>删除了对"tour"文档中的保存的数据库数据的引用，因为这个功能已经被删除。 </li>
</ol>
<h3>Exercise Taglib 示例应用</h3>
<p>Struts Exercise  Taglib Example Application 发生了如下修改和修正： </p>
<ol>
  <li>添加了针对使用了"action"属性的&lt;html:link&gt; 的test  case 。 </li>
  <li>添加了针对基于保存在page上下文中的集合使用&lt;html:options&gt; 和 &lt;html:optionsCollection&gt;的&lt;html:select&gt; 的test  case。 </li>
</ol>
<h2>不同之处</h2>
<p>这里列出1.0到1.1中新增的类和已经不赞成使用的类： </p>
<h3>1.0中不赞成使用，1.1中已经删除的类。</h3>
<ol>
  <li>删除：org.apache.struts.utils.BeanUtils,  org.apache.struts.utils.ConvertUtils, and org.apache.struts.utils.PropertyUtils  – 替换为org.apache.commons.beanutils </li>
  <li>删除：org.apache.struts.util.ArrayStack,  org.apache.struts.util.FastArrayList, org.apache.struts.util.FastHashMap,  org.apache.struts.util.FastTreeMap – 替换为org.apache.commons.collections </li>
  <li>删除：  org.apache.struts.digester.* - 替换为org.apache.commons.digester </li>
  <li>删除：struts-config.dtd –  替换为struts-config_1_1.dtd.</li>
  <li>删除：omnibus  "struts" taglib 和其相应的TLD – 替换为bean, logic, 和html  taglib。 </li>
  <li>删除："form"  taglib 和其相应的TLD – 替换为html  taglib.</li>
</ol>
<h3>Struts 1.1新增的包</h3>
<ol>
  <li>config</li>
  <li>taglib.nested</li>
  <li>taglib.nested.bean</li>
  <li>taglib.nested.html</li>
  <li>taglib.nested.logic</li>
  <li>validator</li>
</ol>
<h3>Struts 1.1新增的类</h3>
<p><strong>action</strong></p>
<ol>
  <li>ActionMessage</li>
  <li>ActionMessages</li>
  <li>DynaActionForm</li>
  <li>DynaActionFormClass</li>
  <li>ExceptionHandler</li>
  <li>RequestProcessor</li>
</ol>
<p><strong>actions</strong></p>
<ol>
  <li>LookupDispatchAction</li>
</ol>
<p><strong>taglib.html</strong></p>
<ol>
  <li>FrameTag</li>
  <li>JavascriptValidatorTag</li>
  <li>MessagesTag</li>
  <li>OptionsCollectionTag</li>
</ol>
<p><strong>taglib.logic</strong></p>
<ol>
  <li>EmptTag</li>
  <li>MessagesNotPresentTag</li>
  <li>MessagesPresentTag</li>
  <li>NotEmptyTag</li>
</ol>
<p><strong>upload</strong></p>
<ol>
  <li>CommonsMultipartRequestHandler</li>
</ol>
<p><strong>util</strong></p>
<ol>
  <li>LabelValueBean</li>
</ol>
<h3>Struts 1.1中新增的类成员</h3>
<p><strong>action.Action</strong></p>
<ol>
  <li>ACTION_SERVLET_KEY</li>
  <li>APPLICATION_KEY</li>
  <li>MESSAGE_KEY</li>
  <li>PLUG_INS_KEY</li>
  <li>REQUEST_PROCESSOR_KEY</li>
  <li>execute</li>
  <li>getResources(javax.servlet.http.HttpServletRequest)</li>
  <li>saveMessages</li>
</ol>
<p><strong>action.A<u>ctionServlet</u></strong></p>
<ol>
  <li>configDigester</li>
  <li>convertHack</li>
  <li>log</li>
  <li>processor</li>
  <li>getInternal</li>
  <li>destroyApplications</li>
  <li>destroyConfigDigester</li>
  <li>getApplicationConfig</li>
  <li>getRequestProcessor</li>
  <li>initApplicationConfig</li>
  <li>initApplicationDataSources</li>
  <li>initApplicationPlugIns</li>
  <li>initApplicationMessageResources</li>
  <li>initConfigDigester</li>
  <li>methods  created for backward-compatiblity only </li>
  <ol>
    <li>defaultControllerConfig</li>
    <li>defaultFormBeansConfig</li>
    <li>defaultForwardsConfig</li>
    <li>defaultMappingsConfig</li>
    <li>defaultMessageResourcesConfig</li>
  </ol>
</ol>
<p><strong><u>taglib.html.BaseHandlerTag</u></strong><strong> </strong></p>
<ol>
  <li>indexed</li>
  <li>setIndexed</li>
  <li>getIndexed</li>
</ol>
<h3>Struts 1.0 到Struts 1.1不赞成的类</h3>
<p><strong>action</strong></p>
<ol>
  <li>ActionException</li>
  <li>ActionFormBeans</li>
  <li>ActionForwards</li>
  <li>ActionMappings</li>
</ol>
<h3>Struts 1.0 不赞成的类成员</h3>
<p><strong>action.Action</strong></p>
<ol>
  <li>FORM_BEANS_KEY</li>
  <li>FORWARDS_KEY</li>
  <li>MAPPINGS_KEY</li>
  <li>getResources()</li>
  <li>perform</li>
</ol>
<p><strong>ActionServlet</strong></p>
<ol>
  <li>findDataSource</li>
  <li>findFormBean</li>
  <li>findForward</li>
  <li>findMapping</li>
  <li>initDataSources</li>
  <li>methods  created for backward-compatiblity only </li>
  <ol>
    <li>defaultControllerConfig</li>
    <li>defaultFormBeansConfig</li>
    <li>defaultForwardsConfig</li>
    <li>defaultMappingsConfig</li>
    <li>defaultMessageResourcesConfig</li>
  </ol>
</ol>
<img src ="http://www.blogjava.net/SteelHand/aggbug/25728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-12-28 15:23 <a href="http://www.blogjava.net/SteelHand/archive/2005/12/28/25728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WW与Struts的合并</title><link>http://www.blogjava.net/SteelHand/archive/2005/11/29/21789.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 29 Nov 2005 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/11/29/21789.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/21789.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/11/29/21789.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/21789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/21789.html</trackback:ping><description><![CDATA[<P>近两天WW并入Struts的事情也可算是比较激烈的一件事情了。从TSS上的讨论来说，90%以上的人还是认为是好事情的。<BR>其实，不久前，Struts规划的路线中，1.2.8可能是最后一个Classic的版本了，并且改版本比1.2.7之前的变化还分出了Struts <BR>Core和扩展， 象 EL， Tag， Tiles, Validation等等几乎都已经是独立模块了。<BR><BR>至于下一代的走向，原来规划的是2个方向&nbsp;， Action Framework和Shale. 其中Shale相对独立，即以JSF为中心，补充和完善JSF框架之不足，我看倒是有些与ADF Faces在有些地方相似，当然是指前端。<BR><BR>只是，ActionFramework的核心原来是<!--StartFragment --> COR 模式为基础，并且可能还未决断。如今，WW带着Xwork加入，可算是解决了这个问题。从Struts Wiki中，这两个项目还是分开的，从Ted的邮件和WW的消息看来，新项目已经决定是Struts Ti了， 可能会合并成Action Framework,成一个东西。是啊，搞那么多干吗？<BR><BR>说到Struts Ti，我才想起来，原来有一个项目是Struts Ti，是从BaseBean的BasicPortals发展起来的，今天再去看看，那个项目已经不能访问了，Sf上的BasciPortal也不能下载了。纳闷！我还没研究这个这个Ti有什么关系。<BR><BR>直接影响我的一个问题是，我一本以Struts 1.2.X为基础的书是继续写还是不写？下一版变化太大了。<BR><BR></P><img src ="http://www.blogjava.net/SteelHand/aggbug/21789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-11-29 10:38 <a href="http://www.blogjava.net/SteelHand/archive/2005/11/29/21789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IBM发布免费Websphere，剑指JBOSS</title><link>http://www.blogjava.net/SteelHand/archive/2005/11/16/20017.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 16 Nov 2005 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/11/16/20017.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/20017.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/11/16/20017.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/20017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/20017.html</trackback:ping><description><![CDATA[日前IBM发布了免费的Websphere应用服务器,Websphere Community Edtion（Websphere CE）。该App server基于Apache的Geronimo，并且附带了Glucode的管理平台Bundle。Gluecode是IBM之前收购的一家商业开源厂商。<BR><BR>&nbsp;并且它还可以与Tomcat和IBM的Java 内存数据库Cloudscape集成。<BR><BR>这活脱脱是 Tomcat + JBOSS + HSQL的翻版，或者针锋相对的举动？<BR><BR>IBM这家大佬将PC这些边缘产业甩给联想这后，潜心发展软件和服务，已经基本可以说是全球第一大软件厂商了。不过，如今Java开源领域的更加繁荣，轻量级技术、方法和框架的流行，确是不争的事实。不管如何，这些巨头都想在这方面染指，插上一腿。<BR><BR>比如，首先，除了Oracle之外，几个重要的Java IDE纷纷转向eclispe平台。然后，BEA宣布支持Spring，hibernate等轻量技术; SUN 开放了Saloris 和 Openoffice, 松动了原来的许可证策略，培育了Java.net这个不断壮大的社区。<BR><BR>而JBOSS确是吸收了JBPM以及开发了portal之后，潜心打造 JEMS（Jboss Enterprise Middleware Sysytem）,已经初具形象。另一家强大的开源老大ObjectWeb，虽然产品线很长，但是剑走偏锋，远远不得Jboss风光。<BR><BR><BR>详细信息，可以访问 <A href="http://www-306.ibm.com/software/webservers/appserv/community/">Websphere CE的站点。</A><BR><BR><img src ="http://www.blogjava.net/SteelHand/aggbug/20017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-11-16 10:52 <a href="http://www.blogjava.net/SteelHand/archive/2005/11/16/20017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IBM RFID Toolkit</title><link>http://www.blogjava.net/SteelHand/archive/2005/10/26/16841.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 26 Oct 2005 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/10/26/16841.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/16841.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/10/26/16841.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/16841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/16841.html</trackback:ping><description><![CDATA[

<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">IBM AlphaWorks</span><span style="font-size: 12pt; font-family: 宋体;">有一个<span lang="EN-US">RFID Device
Development Kit</span>，由一些基于<span lang="EN-US">OSGi</span>（</span><span style="font-size: 10pt;" lang="EN-US">Open Service Gateway Initiative</span><span style="font-size: 12pt; font-family: 宋体;">）的基础架构，工具和示例，这些一起来构成<span lang="EN-US">IBM</span>的<span lang="EN-US">RFID </span>网络边缘解决方案。它可以与<span lang="EN-US">IBM Workplace Client Technology ME,</span>进行集成，这时，用户可以在一个完整的开发平台上进行开发，使用其基础架构和所包含的技术、<span lang="EN-US">API</span>来对新设备进行支持。其中还包括仿真器和教程。用户可以扩展基础架构从而支持特定模型的业务应用需求。 <span lang="EN-US"><o:p></o:p></span></span></p>


<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">该技术是属于<span lang="EN-US">IBM</span>的<span lang="EN-US"><a href="http://www.alphaworks.ibm.com/ettk">Emerging Technologies Toolkit (ETTK)</a></span>的一个组件。<span lang="EN-US"><o:p></o:p></span></span></p>


<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;">它所提供的<span lang="EN-US"> API</span>和协议规范被映射到<span lang="EN-US">XML</span>，可以用来产生和开发设备的<span lang="EN-US">Java</span>接口。最高层的接口提供了设备，比如<span lang="EN-US">RFID</span>阅读器，的通用<span lang="EN-US">Java</span>模型。工具包中的指南将指导用户构建与<span lang="EN-US">IBM</span>的<span lang="EN-US">Sensors </span>和<span lang="EN-US">
Actuators</span>中间件新的代理类。这允许用户将<span lang="EN-US">RFID</span>支持插入到现有的应用中，并且为应用开发者提供一个新的设备模型。<br>
</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; font-family: 宋体;">详细信息可访问：http://www.alphaworks.ibm.com/tech/rfiddevice?open&amp;S_TACT=105AGX59&amp;S_CMP=GR&amp;ca=dgr-jw01awrfiddevice<br>
<br>
</span></p>

<img src ="http://www.blogjava.net/SteelHand/aggbug/16841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-10-26 10:37 <a href="http://www.blogjava.net/SteelHand/archive/2005/10/26/16841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 秘籍（CookBook）索引</title><link>http://www.blogjava.net/SteelHand/archive/2005/10/18/15825.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 18 Oct 2005 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/10/18/15825.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/15825.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/10/18/15825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/15825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/15825.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>应<A href="/calvin/">白衣</A>之请，将以前发的所谓Struts秘籍作了个索引在此。本系列源改编自O'Reily的Strus Cookbook，后因时间关系没再进行。如果以后有时间还需继续，可能会更简化一些&nbsp;。<A href="/SteelHand/archive/2005/05/10/4132.html"><BR><BR></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/10/4132.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：配置</SPAN></SPAN>Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>应用</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/04/26/3825.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：部署</SPAN></SPAN>Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>示例应用</SPAN></SPAN></A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/04/27/3835.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.3<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：迁移至</SPAN></SPAN>Struts 1.1</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/04/28/3876.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.4<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：升级至</SPAN></SPAN>Struts 1.2</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/04/29/3930.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.5<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>:<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>将</SPAN></SPAN>JSP <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>应用转到</SPAN></SPAN>Struts</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/04/30/3960.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.6<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：管理</SPAN></SPAN>Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>配置文件</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/08/4077.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.7<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：使用</SPAN></SPAN>Ant<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>进行构建和部署</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/09/4110.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之起式：第</SPAN></SPAN>1.8<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：用</SPAN></SPAN>XDoclet <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>产生</SPAN></SPAN>Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>配置文件</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/25/5148.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：</SPAN></SPAN>UI</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/10/4136.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：用插件来进行应用初始化</SPAN></SPAN></A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/11/4159.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：关于标签库声明</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/12/4211.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.3<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：在</SPAN></SPAN>JSP<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>中使用常数</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/13/4247.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.4<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：多配置文件</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/17/4423.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.5<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>. <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>将应用重构为模块</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/17/4426.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.6<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>. <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>使用多个资源束</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/18/4474.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.7<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>. <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>访问来自于数据库中的消息资源</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/19/4867.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>2.8<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>. <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>有选择地禁止</SPAN></SPAN>Action</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/27/5265.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.1<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：</SPAN></SPAN><SPAN lang=EN-US><SPAN lang=EN-US> </SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>使用</SPAN></SPAN>JSTL</A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/27/5266.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：使用</SPAN></SPAN>Struts-EL <SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>标签</SPAN></SPAN></A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/30/5324.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.3<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：显示索引属性</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/05/31/5368.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.4<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：在表单中使用索引属性</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/06/01/5413.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.5<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：</SPAN></SPAN><SPAN lang=EN-US><SPAN lang=EN-US> </SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>在</SPAN></SPAN>JSTL<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>循环中使用索引属性</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/06/03/5506.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.6<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：</SPAN></SPAN><SPAN lang=EN-US><SPAN lang=EN-US> </SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>从图像提交表单</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/06/07/5654.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.7<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：</SPAN></SPAN><SPAN lang=EN-US><SPAN lang=EN-US> </SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>动态产生</SPAN></SPAN>JavaScript</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/06/08/5723.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.8<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式：使用</SPAN></SPAN>JavaScript<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>动态改变选择项</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/06/29/6861.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段，第</SPAN></SPAN> 3.9<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式，产生动态选择列表项目</SPAN></SPAN></A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><A HREF="/SteelHand/archive/2005/07/01/6974.html">Struts<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>秘籍之第</SPAN></SPAN>2<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>段：第</SPAN></SPAN>3.10<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>式</SPAN></SPAN>:<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN lang=EN-US>过滤文本输入</SPAN></SPAN></A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P></P><img src ="http://www.blogjava.net/SteelHand/aggbug/15825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-10-18 16:50 <a href="http://www.blogjava.net/SteelHand/archive/2005/10/18/15825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BEA收购M7</title><link>http://www.blogjava.net/SteelHand/archive/2005/10/13/15398.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Thu, 13 Oct 2005 02:48:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/10/13/15398.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/15398.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/10/13/15398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/15398.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/15398.html</trackback:ping><description><![CDATA[我一直喜欢的M7 Nitrox终于被BEA收购了。这下，不久的将来Nitrox就可以成为eclipse-based的Workshop的一部分。<BR>Nitrox算是eclipse插件中可视化做的非常好的工具了，而workshop则在Java控件、Web Services、Portal等方面的功能非常强大而直观。二者结合在一起，应该效果不错。<BR><BR>一直认为憾事的BEA Workshop对JSF的支持，这下也有了。<BR><BR>前些日子，BEA还推出了对Spring 的支持包，这下，Weblogic 9和eclipse 的Workshop非常值得期待。<BR><img src ="http://www.blogjava.net/SteelHand/aggbug/15398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-10-13 10:48 <a href="http://www.blogjava.net/SteelHand/archive/2005/10/13/15398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Struts in Action中文版》完整版</title><link>http://www.blogjava.net/SteelHand/archive/2005/10/12/15329.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 12 Oct 2005 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/10/12/15329.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/15329.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/10/12/15329.html#Feedback</comments><slash:comments>164</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/15329.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/15329.html</trackback:ping><description><![CDATA[分卷压缩后，终于上传完了。<BR>下载地址分别是：<BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part01.rar">Part1</A>&nbsp;<BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part02.rar">Part2</A><BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part03.rar">Part3</A><BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part04.rar">Part4</A><BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part05.rar">Part5</A><BR><A href="/Files/SteelHand/Struts%20in%20Action%20%E4%B8%AD%E6%96%87%E7%89%88.part06.rar">Part6</A><BR><BR><BR><EM><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000>下载是正常的，如果不能请检查你的网络。解压时需要全部下载完成后进行。</FONT></EM><img src ="http://www.blogjava.net/SteelHand/aggbug/15329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-10-12 15:00 <a href="http://www.blogjava.net/SteelHand/archive/2005/10/12/15329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Struts in Action 完整版</title><link>http://www.blogjava.net/SteelHand/archive/2005/10/11/15264.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 11 Oct 2005 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/10/11/15264.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/15264.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/10/11/15264.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/15264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/15264.html</trackback:ping><description><![CDATA[<a title="" href="http://struts.apache.org" >Struts</a> in Action 终于整理完了。并且我根据这里的朋友们提供的意见和指出的错误进行了修改，也根据原书的勘误作了修改。<br>
我将原来的分章节的文章删除了，准备上传完整版。可是文件太大，而且系统将Size限制在2M.又是一阵忙活，压缩了，减小PDF文件的大小了....最后的压缩包到1.8M左右。可是网络太慢，还是上传不成功。郁闷！<br>
只好等网络不忙的时候再上传，分开打包总不太好。<br>
<br>
<br>
昨天到学校报到了。拿到课表，居然本学期每周居然1-4晚上，周六全天上课，又郁闷！那里忙得过来！看来得好好盘算一下怎么办了？<br>
<br>
而且，以后可能到这里的时间少了，我准备的一些文档的推出速度则更加慢了。<br>
<br>
<br><img src ="http://www.blogjava.net/SteelHand/aggbug/15264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-10-11 16:27 <a href="http://www.blogjava.net/SteelHand/archive/2005/10/11/15264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Struts in Action》中文版 第15章</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/27/14211.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 27 Sep 2005 07:56:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/27/14211.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/14211.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/27/14211.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/14211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/14211.html</trackback:ping><description><![CDATA[最近简直没有时间，可能笔误和错误颇多。请在这里指出来，一并在完整版中改正。谢谢！<BR><A href="http://www.blogjava.net/SteelHand/SteelHand/Files/SteelHand/StrutsInAction_Chinese(15).rar">这里下载</A></A>。<BR><BR><EM><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000><STRONG>&nbsp;不知为什么提交后连接地址的上下文根会变。如果上面连接不行，请直接使用这个地址：<BR></STRONG></FONT></EM><EM><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000><STRONG>http://www.blogjava.net/Files/SteelHand/StrutsInAction_Chinese(15).rar</STRONG></FONT></EM><img src ="http://www.blogjava.net/SteelHand/aggbug/14211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-27 15:56 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/27/14211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXADEL STUDIO 3.0 RELEASED</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/09/12524.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Fri, 09 Sep 2005 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/09/12524.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/12524.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/09/12524.html#Feedback</comments><slash:comments>82</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/12524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/12524.html</trackback:ping><description><![CDATA[<P> <A href="http://www.exadel.com/">EXADEL</A> Studio的3.0发布了，我个人认为这是eclipse平台的轻量IDE中比较好的了。<A href="http://www.m7.com/">M7的Nitrox</A>不错，但是很贵哦。而且............加密做的不错，很难找到CRACK的。<BR><BR>从2.5版本开始，他就分为了标准版和Pro版，前者是免费的，后者收费。3.0Pro版本同样为＄99，可以说非常便宜了。而Nitrox同时支持JSF和Struts的版本居然是$699。<BR><BR>关于其新特征，可以查看：Pro版：<A href="http://www.exadel.com/products_exadelstudiopro.htm">http://www.exadel.com/products_exadelstudiopro.htm</A>  标准版：<A href="http://www.exadel.com/products_exadelstudio.htm">http://www.exadel.com/products_exadelstudio.htm</A>。<BR><BR>有几个特征值得一提：<BR></P>
<UL>
<LI><A href="http://www.exadel.com/exadelstudio/help/projectTemplates.html">支持自定义的项目模板。</A></LI>
<LI><A href="http://www.exadel.com/exadelstudio/help/jsfConfigEditor.html">JSF配置文件的可视化编辑：</A>，包括：</LI></UL>
<P>导航图：</P>
<P><A href="http://www.exadel.com/exadelstudio/help/images/facesConfigDiagram.gif"><IMG height=380 alt=1 src="http://www.exadel.com/exadelstudio/help/images/facesConfigDiagram.gif" width=554 border=0></A>Tree视图编辑器：</P>
<P><A href="http://www.exadel.com/exadelstudio/help/images/facesConfigTree.gif"><IMG height=445 alt=2 src="http://www.exadel.com/exadelstudio/help/images/facesConfigTree.gif" width=554 border=0></A></P>
<UL>
<UL>
<LI><STRONG>JSF</STRONG><STRONG>内容助理：</STRONG></LI></UL></UL>
<P><A href="http://www.exadel.com/exadelstudio/help/jsfContentAssist.html">特别是支持表达式的帮助：</A></P>
<P><A href="http://www.exadel.com/exadelstudio/help/images/jsfContentAssistProject1.gif"><IMG height=295 alt=3 src="http://www.exadel.com/exadelstudio/help/images/jsfContentAssistProject1.gif" width=502 border=0></A></P>
<P>这点非常不错，看好！</P>
<P> </P>
<P>对Struts的支持，除了常规的导航流图，配置编辑，可视化验证，之类，还直<A href="http://www.exadel.com/exadelstudio/help/tilesEditor.html">支持TILES的可视化</A>，这点有很大进步，但是和Nitrox比还是有些差距，后者能够支持JSP编辑器中的TILES WYSWYG效果。</P>
<P>还有个有趣的特征是<A href="http://www.exadel.com/exadelstudio/help/strutsConfigDebug.html">Struts配置文件的Debug</A>, 直接在图形上就可以设置断点。</P>
<P> </P>
<P>另外的改进就是支持JSP 的WYSWYG编辑。</P>
<P> </P>
<P>PRO版与标准版的支持在于对Hibernate 和Spring 的支持，以及JSP的可视化编辑。其中Hibernate 支持可视化MAP编辑。Spring 则是有Spring IDE提供，无新意。</P>
<P> </P>
<P>哈哈，我决定在我后面的Spring 和struts的书中，以它作为演示工具。</P><img src ="http://www.blogjava.net/SteelHand/aggbug/12524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-09 11:30 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/09/12524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java IDE的未来</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/07/12295.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 07 Sep 2005 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/07/12295.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/12295.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/07/12295.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/12295.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/12295.html</trackback:ping><description><![CDATA[<!--StartFragment -->&nbsp;<SPAN class=artText> 
<P class=ArticleBody page="1"><SPAN class=autoLinked><B>Borland 最近宣布了将要升级</B></SPAN>JBuilder IDE的相关信息。基于Eclipse平台，Borland JBuilder 2006 将提供端对端的开发人员协作功能，以提高对标准的支持和生产力增强。但是这恐怕不是令大家关注的地方，大家感兴趣的还是Eclipse平台。<BR><BR>BEA公司也意图将其IDE Workshop的未来版本转向Eclipse平台，在加上IBM Websphere Studio(现在叫Rational Software Architect和Rational Application Developer)，似乎eclipse的势力在妄图一统天下。著名的Java IDE只剩下Oracle 的JDeveloper和IDEA了。但是实际上Java IDE 却是阴云密布，不容乐观。<BR><BR><BR>基于Eclipse的 JBuilder，代号为Peloton。大约会在明年中期发布。它将会包含 JBuilder的可用性和协作特征，加上应用生命周期管理。</P>
<P class=ArticleBody page="1">近两年Eclipse社区不断发展壮大，以致在Eclipse3发布的时候，疯狂下载造成服务器几乎瘫痪。因此，在Java IDE市场上， Eclipse估计占到20-30%的市场分额。.</P>
<P class=ArticleBody page="1">因此，这种增长令商业的专用IDE厂商非常不安，前不久 <SPAN class=autoLinked><B>Oracle终于宣布其</B></SPAN>JDeveloper向开发人员免费，仅对支持收费。就是一种无可奈何的反应。它们认为，Eclipse （包括商业和开源平台）的开发工具已经占据了50%的半壁江山，Oracle在J2EE方面一直不太理想，还不如让JDeveloper免费，也好做为Oracle Java的形象大使，赚回些关注。</P>
<P class=ArticleBody page="1">但是实际上，Eclipse提供的是一个骨架平台，当然Eclipse本身也提供一些开源的Plugins,也有其他一些厂商在提供商业的插件支持，比如MyEclipse, Lomboz, Exadel等等。还有其它一些开源的专用插件，层出不穷。<BR><BR>因此，Eclipse-Based IDE实际上成为两种派系：OS和商业的。就商业来说，IBM是最嬉笑颜开的，Eclipse本身就是它鼎力支持的，从WSAD到RAD和RSA，IBM成功地将Rational 品牌产品和Websphere进行了整合，Rational体系如今专注软件开发生产和测试，而RAD和RSA则提供了业界最高标准的，包含基本IDE支持，标准支持，协作，软件生命周期（甚至集成了RUP），MDA等功能为一体的开发平台。<BR><BR>当然，基于Eclipse的商业IDE和开源IDE会否共存？答案当然是肯定的。最简单的原因就是，Java虽然是标准，但是厂商自有独门功夫，因此，IDE商业平台自然带有一定的专有性。如果是大型的企业应用，需要优化等等，则非商业IDE莫属。<BR><BR>另外一个就是Java本身的未来，轻量架构和方法的发展，比如如火如荼的IoC，MetaFramework等等，则又大大促进了开源IDE的发展。<BR><BR>因此，一定时期内，这两种肯定会共存。IDE的较量，背后还是AS和基础平台的较量。<BR><BR>Borland的未来核心是构建一个 Borland Core Software Delivery Platform (SDP), 也都基于Eclipse。JB只是其中一个组件。 </P>
<P class=ArticleBody page="1">SUN的IDE则有些尴尬，NetBeans 一直没什么人感兴趣。现在，SUN的另一个IDE， Java Creator则让人摸不清到底是何意思。Creator的意图是想借JSF的组件架构，构造一个轻量的开发环境，并且还苦心构造了一个轻量的后台的数据支持。这明显和SUN的J2EE架构矛盾，真是搞不懂。不过，Creator对快速开发（RAD）倒是颇有点像VS.NET的那么点样子，可惜是SUN在经营，恐怕也不会对MS造成什么威胁。<BR><BR>另外一个IDEA则也有一大帮拥甭。IDEA有些地方却有独到之处。其它倒是不说，不过IDEA的下一版（恐怕不妥）fabrique倒是非常有意思，它在常规的IDE之上构建了一个专门的应用框架，并且在IDE（应该说是RAD开发平台）提供了业务对象框架，Web应用框架，以及通用的服务（称为Active Libraries）（Forum,Email,...）的支持。非常具有特色。我个人十分欣赏。这点恐怕只是Oracle ADF可以与之一比。<BR><BR>呵呵，先说这么多。</SPAN></P><img src ="http://www.blogjava.net/SteelHand/aggbug/12295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-07 10:23 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/07/12295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java在线教程</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/06/12219.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 06 Sep 2005 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/06/12219.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/12219.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/06/12219.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/12219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/12219.html</trackback:ping><description><![CDATA[有一个免费的Java在线教程，看样子是一个SUN的专家掌控的，名字<!--StartFragment --> <SMALL><A href="mailto:sang.shin@sun.com">sang.shin</A></SMALL> ，中国人？韩国人？<BR>其中有很多非常好的材料，有详细的课程表，还包括PPT材料，讲课录音，实验材料等等。我觉得非常有价值。<BR>你还可以注册到一个相关的yahoo群组参与到课程中。初学者不妨试试。虽然是英文的，不过也不要怕，还可以学习英文，岂不更好？<BR><BR>地址是：<A href="http://www.javapassion.com">http://www.<A href="http://www.javapassion">javapassion</A>.com</A><img src ="http://www.blogjava.net/SteelHand/aggbug/12219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-06 14:36 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/06/12219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SUN JSF RI Opensource 以及JSF新特征</title><link>http://www.blogjava.net/SteelHand/archive/2005/08/29/11413.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 29 Aug 2005 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/08/29/11413.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/11413.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/08/29/11413.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/11413.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/11413.html</trackback:ping><description><![CDATA[<P>Roger Kitain （ JavaServer Faces co-specification lead&nbsp;）在其blog宣布了开源的 "Open JavaServer Faces" ，并且在基于OSI-approved CDDL许可之下。</P>
<P>&nbsp;</P>
<P>原来SUN JSF&nbsp;RI 是基于 Sun Java Research License [Sun, JRL]对”开放开发”发布。基本上，这意味着你可以免费获得它的代码和源代码，并且你可以修改和分发它，只要你不是用作商业目的, 或者用作内部非生产之用。如果你修改了二进制代码和源代码用作商业用途或者内部生产之用，你必须使用商业许可证并且通过 JSF 技术兼容包 (TCK)的测试。你也可以提交补丁给 JSF RI 代码基。</P>
<P>&nbsp;</P>
<P>并且在Java.net社区也launch了一个专门的项目Javaserver Faces，地址是：https://javaserverfaces.dev.java.net/</P>
<P>&nbsp;</P>
<P>Ed Burns&nbsp;也在其BLog中公布了 JavaServer Faces 1.2 和 JavaServer Pages 2.1 Proposed Final Draft Specification的一些细节：</P>
<P>&nbsp;</P>
<UL>
<LI>统一 EL。</LI></UL>
<P>将JSP，JSTL和Faces EL统一起来，并且类似于 OGNL 的使用方式。这将极度方便表现层之间的整合，和MVC之间的简化。</P>
<UL>
<LI>针对JSP/JSF应用的新的Tree 创建和内容交织模型（Content Interweaving Model）。</LI></UL>
<P>虽然可以不用JSP而使用Faces，但是因为技术、技能和各种生产开发环境的支持，JSP/JSF应用确实最现实和富有效率的。当然，这里还有一些集成问题，比如OnJava中的 Hans Bergsten 的这篇文章所述。&nbsp;所以规范中将修改针对JSP的Faces ViewHandler 的实现，以及所有Faces组件标签所用的JSP定制标签句柄的基类的实现来解决这些问题。</P>
<UL>
<LI>集成JSTL。</LI></UL>
<P>有一个问题是JSTL不支持PostBack，所以使用 JSTL的 &lt;c:forEach&gt; 包含Faces 输入组件会出现问题。所以需要在JSTL中引入类似于PostBack的新概念，将在下一个版本中发布，并且更好地支持所有Faces组件。</P>
<UL>
<LI>Back Button 问题和多 Frame 或Multi Window Faces 应用。</LI></UL>
<P>因为在Multi Frame 或者 Multi Window 应用中使用Facesa在State Management API方面会出问题，即浏览器的Back按钮会造成状态错误。这个问题已经解决。&nbsp;</P>
<UL>
<LI>将消息与页面中的某个特定的组件相关联。</LI>
<LI>AJAX support</LI>
<LI>暴露一个application 层面的 ResourceBundle 给 EL.</LI></UL>
<P>添加了一个新的 &lt;resource-bundle&gt;到 faces-config 中，列出应该暴露给使用ELResolver 链的EL的资源束。这样可以优化性能。</P>
<UL>
<LI>API classes use generics</LI></UL>
<P>&nbsp;</P>
<P>原文见：http://weblogs.java.net/blog/edburns/archive/2005/08/javaserver_face_3.html</P>
<P>&nbsp;</P><img src ="http://www.blogjava.net/SteelHand/aggbug/11413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-08-29 10:51 <a href="http://www.blogjava.net/SteelHand/archive/2005/08/29/11413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java i18n的一个很好的文章</title><link>http://www.blogjava.net/SteelHand/archive/2005/08/29/11409.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 29 Aug 2005 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/08/29/11409.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/11409.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/08/29/11409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/11409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/11409.html</trackback:ping><description><![CDATA[前些日子说要整理一下Java中文字编码的处理的文章，今天早上发现一篇比较好的材料，从各个角度都讨论了有关编码处理的问题。其实其基础和我想的一样，尽量在各个环节都统一成Unicode，而不是到处进行修修补补的转码。<BR><BR>作者说将不时更新，而且其中有些示例不时基于最广泛的Tomcat，不过基本上都差不多，涉及到这些环节。<BR><BR>他强调不要Copy文章，可以Link，以便获得最新的Update，所以，我们就link一下，地址是：<BR><BR><A href="http://tomi.panula-ont.to/i18n/">http://tomi.panula-ont.to/i18n/</A><BR><BR><img src ="http://www.blogjava.net/SteelHand/aggbug/11409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-08-29 10:05 <a href="http://www.blogjava.net/SteelHand/archive/2005/08/29/11409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOP Java Books</title><link>http://www.blogjava.net/SteelHand/archive/2005/08/24/10864.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 24 Aug 2005 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/08/24/10864.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/10864.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/08/24/10864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/10864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/10864.html</trackback:ping><description><![CDATA[前面有个朋友说看书总是希望要看4 Star以上的（Amazon Reviewed），一直想拟一个Book List，不过一直没有付诸行动。不过大家可以先看看这些数据排名：<BR><BR><STRONG>1 TOP Java Books:<BR></STRONG>
<HR>
<BR><EM>(Head First系列非常之好，可是也很难以搞到。不知为什么一直没有引进中文的计划。)</EM><BR><!--StartFragment -->&nbsp;<TR class=itemListRow><TD class=itemListCell> 
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0596007124 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596007124/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0596007124.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596007124/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Head First Design Patterns </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0596009208 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596009208/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0596009208.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596009208/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Head First Java, 2nd Edition </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0131483986 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131483986/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0131483986.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131483986/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java How to Program (6th Edition) (How to Program (Deitel)) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=193239415X method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/193239415X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/193239415X.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/193239415X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Hibernate in Action (In Action series) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0131482025 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131482025/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0131482025.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131482025/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Core Java(TM) 2, Volume I--Fundamentals (7th Edition) (Core Java 2) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0201310058 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0201310058/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0201310058.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0201310058/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Effective Java Programming Language Guide </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0596005407 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596005407/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0596005407.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596005407/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Head First SCWCD </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0072226846 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0072226846/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0072226846.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0072226846/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Sun Certified Programmer &amp; Developer for Java 2 Study Guide (Exam 310-035 &amp; 310-027) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0764574833 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764574833/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0764574833.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764574833/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Professional Java Development with the Spring Framework </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0131492020 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131492020/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0131492020.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131492020/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java : An Introduction to Problem Solving and Programming (4th Edition) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><STRONG>2 TOP Selling J2EE Book</STRONG><BR><BR><!--StartFragment -->&nbsp;<TR class=itemListRow><TD class=itemListCell> 
<HR>

<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0764543857 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764543857/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0764543857.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764543857/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Expert One-on-One J2EE Design and Development (Programmer to Programmer) </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 5.0" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0131422464 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131422464/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0131422464.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131422464/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Core J2EE Patterns: Best Practices and Design Strategies, Second Edition </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 5.0" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0764558315 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764558315/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0764558315.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0764558315/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Expert One-on-One J2EE Development without EJB </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.5" src="http://g-images.amazon.com/images/G/01/detail/stars-4-5.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0321146182 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0321146182/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0321146182.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0321146182/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>J2EE Web Services </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.0" src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=1590593413 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1590593413/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/1590593413.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1590593413/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Beginning J2EE 1.4: From Novice to Professional (Apress Beginner Series) </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.5" src="http://g-images.amazon.com/images/G/01/detail/stars-4-5.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0131480103 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131480103/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0131480103.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0131480103/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>J2EE 1.4 : The Big Picture </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 5.0" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0130449164 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0130449164/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0130449164.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0130449164/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Sun Certified Enterprise Architect for J2EE Technology Study Guide </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 3.0" src="http://g-images.amazon.com/images/G/01/detail/stars-3-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=047128128X method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/047128128X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/047128128X.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/047128128X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Mastering BEA WebLogic Server: Best Practices for Building and Deploying J2EE Applications </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.5" src="http://g-images.amazon.com/images/G/01/detail/stars-4-5.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0972954899 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0972954899/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0972954899.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0972954899/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>The J2EE Architect's Handbook </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.0" src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=073571195X method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/073571195X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/073571195X.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/073571195X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java for the Web with Servlets, JSP, and EJB: A Developer's Guide to J2EE Solutions </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.5" src="http://g-images.amazon.com/images/G/01/detail/stars-4-5.gif"><BR></TD></TR></TBODY></TABLE></FORM></TD></TR><STRONG>3&nbsp; 8月TOP　Selling:</STRONG><BR><!--StartFragment -->&nbsp;<TR class=itemListRow><TD class=itemListCell> 
<HR>

<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0321349806 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0321349806/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0321349806.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0321349806/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java(TM) Programming Language, The (4th Edition) (Java Series) </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0596100655 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596100655/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0596100655.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596100655/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Eclipse IDE Pocket Guide </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=1932394419 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1932394419/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/1932394419.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1932394419/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Hibernate Quickly </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0471738840 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0471738840/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0471738840.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0471738840/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Data Structures and Algorithms in Java </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 2.0" src="http://g-images.amazon.com/images/G/01/detail/stars-2-0.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0262693259 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0262693259/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0262693259.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0262693259/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java Precisely : Second Edition </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 4.5" src="http://g-images.amazon.com/images/G/01/detail/stars-4-5.gif"> </TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0596007345 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596007345/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0596007345.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0596007345/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Making Jboss Work </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=354027992X method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/354027992X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/354027992X.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/354027992X/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>ECOOP 2005 - Object Oriented Programming : 19th European Conference, Glasgow, UK, July 25-29, 2005. </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0975913565 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0975913565/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0975913565.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0975913565/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Easy Java Debugging : Java Testing &amp; Development for Speed and Quality </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=0672327635 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0672327635/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/0672327635.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/0672327635/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Code First : Java </A></TD></TR>
<TR>
<TD vAlign=center noWrap></TD>
<TD vAlign=center align=right>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR></TBODY></TABLE></FORM></TD></TR><TR class=itemListRow><TD class=itemListCell>
<FORM action=http://buybox.amazon.com/o/dt/assoc/handle-buy-box=1418859834 method=post target=blank>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width=52 rowSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1418859834/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top><IMG alt="Average review:  stars" hspace=2 src="http://images.amazon.com/images/P/1418859834.01.THUMBZZZ.jpg" vspace=2 border=0> </A></TD>
<TD style="FONT-WEIGHT: 700; TEXT-ALIGN: left" colSpan=2><A href="http://www.amazon.com/exec/obidos/ASIN/1418859834/ref=nosim/javacrawlcom-20?dev-t=D68HUNXKLHS4J" target=_top>Java Programming: Introductory Concepts and Techniques, Third Edition </A></TD></TR>
<TR>
<TD vAlign=center noWrap>Avg. Review: <IMG alt="Avg. Rating: 1.0" src="http://g-images.amazon.com/images/G/01/detail/stars-1-0.gif"></TD></TR></TBODY></TABLE><BR></FORM></TD></TR>JavaOne 2005大会上的书店有一个临时排行榜。以在此看到这些书的情况，<A href="http://jroller.com/resources/h/habuma/j1sia.jpg">http://jroller.com/resources/h/habuma/j1sia.jpg</A><BR><BR>列出这些书由什么意义？我也不知道。不过找得到的话，可以看看。好不好，你自己说了算。<BR><BR><img src ="http://www.blogjava.net/SteelHand/aggbug/10864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-08-24 10:33 <a href="http://www.blogjava.net/SteelHand/archive/2005/08/24/10864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOP 10 Resesons to Perfer JSF on Struts</title><link>http://www.blogjava.net/SteelHand/archive/2005/08/24/10856.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Wed, 24 Aug 2005 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/08/24/10856.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/10856.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/08/24/10856.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/10856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/10856.html</trackback:ping><description><![CDATA[&nbsp;David Geary （何许人也？Core JSF的作者之一）有一篇BLog，建议新项目都最好采用JSF而不是Struts，并且列出了10大理由，分别是：<BR><BR><!--StartFragment -->&nbsp; 
<LI>Components </LI>
<P><EM>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;组件组件，JAVA一直希望有.NET和Delphi的RAD和拖放式开发，虽然现在和那两种还有差距，但毕竟已经是开始了。第3方组件厂商也开始出现萌芽的态势。另外一个值得注意的趋势就是，Apple，这个艺术与技术的完美缔造者，其WebObject，作为Web的组建式框架的祖宗，也准备开放了。而且，按照Apple也转向Intel平台的介绍来看，也许不久的一天，它就可以完美地运行在WinTel架构下了。</EM><BR>&nbsp;&nbsp;&nbsp;</P>
<LI>Render Kits </LI>
<P><EM>&nbsp;&nbsp; 支持渲染包可以是一个非常重要的特征，这样可以支持不同的显示技术。移植性很好。针对XML， PDF， VML等等。不需要改动其它的东西。</EM></P>
<LI>Renderers </LI>
<LI>Value Binding Expressions </LI>
<P><EM>&nbsp;&nbsp; 其实比较特色的是Method Binding,这点在其他EL或者类似的技术上还没有。</EM></P>
<LI>Event Model </LI>
<LI>Extensibility </LI>
<LI>Managed Beans (Dependency Injection) </LI>
<P><EM>&nbsp; 只有Spring 才IoC吗？不是的，其实现在IoC无处不在。</EM></P>
<LI>POJO Action Methods </LI>
<LI>JSF is the standard Java-based web app framework </LI>
<LI>There's only one <a title="" href="http://struts.apache.org" >Struts</a></LI>
<P><EM>&nbsp;&nbsp;&nbsp;Struts是一个产品，而JSF是一个标准。二者层面不一样。有很多优秀的实现会出现的。</EM></P>
<P>甚以为是，故摘录于此。原文见：<A href="http://jroller.com/page/dgeary?entry=top_ten_reasons_to_prefer">http://jroller.com/page/d