本书是由Struts开发小组的核心成员编写的一本关于struts开发的经典书籍。它一步步地由浅人深,将Struts分解成相对独立的部分进行了讲解。本书除了介绍struts以外,同时还介绍了一些与Struts相关的组件,合理地使用这些组件可以帮助程序员开发出更加健壮、更加专业、更加容易维护的应用程序。对于刚刚接触Struts的新手而言,本书无异于是学习和掌握Struts的圣经。对于在Struts方面有不少经验的程序员而言,本书也提供了Struts底层内容,帮助读者更好地编写基于Struts的应用程序。
到2000年的时候,Java已经是一个成熟的语言了。早期版本中的问题已经被解决,同时一些很有趣的开发工具和类库也开始出现在市场上。我当时已经有过数年开发web应用程序的经验。和许多其他程序员一样,最初开发web应用程序的时候是使用。lavaScript和Perl语言。这种组合具有强大的功能,但是维护它简直就是一场噩梦。后来又使用过ColdFusion,它同样具有强大的功能,但是对于我的客户而言,它太贵了。我曾经还试过FileMaker Pro,这是一个很有趣的工具,但是它过于专业化了。
我当时做的这一系列web应用程序的主要客户是一个公共广播电台。该电台的主要经济支柱是每年的拍卖活动。本地的供应商提出自己的商品和服务,而人们通过广播电台来投标并支持该电台。当然,对于那些高端的拍卖品,例如手工艺品、汽车、度假产品、名人签名等等,我们同时也会在网站上贴出相关的图片。
在1998的时候,对于那些高端拍卖品,我们使用由JavaScript和Perl语言开发的一个应用程序来进行“预投标”。那些真正的投标还是通过电台的实况投标活动进行。应用程序真正要做的仅仅是得到开始投标的价格。到1999年的时候,我们开始同时使用在线以及电话投标两种形式了。因为发现每年原来使用的平台并不能完全符合我的要求,我都不得不使用另外的平台来发布被拍卖的产品。
对于当时正在使用的Apache服务器很满意,因此我花费了一些时间来研究刚刚诞生的Jaklarat站点。在那个站点上,我发行了Struts。最初,我甚至都觉得Struts项目可能已经不是一个活动的项目了。但是它的文档看起来是一个很有潜力的项目。因此,我订阅了它的邮件列表,看看是否还有人工作在该项目上。该项目的文档中附带了一个例子应用程序,因此我便一个人来试试该例子应用程序,试图搞清楚该框架结构到底用来干什么。这项研究工作最终演变成了“strnts应用程序的介绍”这样一篇文档,其中通过一系列的截屏来说明例子应用程序是如何工作的。我将该文章发表在邮件列表上,其他一些订阅了该邮件列表的人指出了我文章中的一些小错误。
我继续订阅该邮件列表,尽我所能帮助其他人,同时也得到其他人的帮助,该邮件列表的使用人数急剧上升。到年底的时候,Struts的体系架构师Cragi McClanahan希望有人可以帮助他完成Struts 1.0版本的文档工作。我被Struts小组选中来完成该文档工作。到2001年,我们终于成功发布了Struts 1.0。
在这以后,我开始了“More About struts”的页面制作工作。最初,我仅仅是用它来存放那些我编写的和sttaats相关的材料,后来我又在其中添加了链接其他人编写的关于struts的材料。渐渐地,越来越多关于struts的文章出现了。我的关于struts的资源列表的页面也越来越大,同时也越来越受到欢迎,因此我将它移到Struts的主站点上。现在,它包含了一系列的页面,链接我们知道的全部和struts相关的材料上。
Struts的邮件列表中包含了很多很有用的内容。特别在开始的时候,Craig也经常通过它来给出实现细节以及体系结构上的指导。但是,现在想在归档后的邮件列表中找到合适的回答已经变成了一个挑战。因此,我又开始对邮件列表里的每一个问题进行归纳,找到最好的部分。这项工作最后成为了一个关于struts的相当大的“FAQ”。2001年的6月,JGurn决定为struts也设定一个论坛和FAQ,因此我们将该FAQ移交给JGurn,但是我逐是负责该FAQ。
同时,许多出版社也开始注意到struts。很多出版社向我约稿。在咨询了其他的struts社团后,我们最终决定和Manning出版社一起合作。和Apache一样,Manning对于开源项目也是有着长期的质量承诺。尽管我们期望这本书尽快面世,但是我们也期望保证本书尽可能成为最好的。
结果就是我们现在看见的本书。它其实是一本合作的结晶。David Winterfeldt,Struts Validator的创始人,很热心地负责了关于Validator的章节。同样,Cedric Dumoulin,Tiles的创始人,也负责Tiles的章节。George Franciscus负责第1章,也是最关键的一章。第1章专门针对那些刚刚进入该领域的新手写的。我们甚至请Craig为本书写了序言(Craig更喜欢写程序)。当然,其他的Struts开发人员和整个社区,都在不同的阶段审阅了本书的手稿。我们在此对于那些建议表示感谢。
我们就要进入使用Struts的第三个年头了。现在我们不是每年都重写一次,但我们每年都将改进它。
Tred Husted
Fairport纽约