明晰了Struts2的学习途径,我们需要一些参考资料来进行学习。Struts2来源于Webwork2,所以绝大多数原本Webwork2的优秀学习资料,都非常值得我们去学习阅读。在这里,我来简单小节一下当前市面上的Struts2的学习资料。
1. Struts2自带的reference和sample ———— 推荐指数:5颗星
Struts2自带的reference和sample在Struts2的发行包中间都有包含,请大家各自参阅即可。
Struts2的reference基本上是wiki形式的,每个小专题的篇幅不长,但是讲解非常到位,也非常易读。而其中所举例的代码也比较贴近实际,应该能够说明绝大多数问题。
我这里另外想提一下的是Struts2官方网站上另外一个挺有价值的链接:
http://cwiki.apache.org/S2PLUGINS/home.html。
这个链接列出了目前Struts2的一些plugin。当然,如果你有兴趣,也可以自己写plugin,并到官网上去announce一把。Struts2的很多特性,有了plugin的支持,会变得更加优秀。大家可以顺着这个链接去扫一遍所有的plugin,看看他们到底是干嘛的,或许你会有非常意外的收获。
2. moxie同学早在2004年的作品:《最新的Webwork教程》 ———— 推荐指数:5颗星
moxie同学是国内比较早研究Webwork的人,并且在当时Webwork资料缺乏的情况下,他贡献了这篇难能可贵的入门级教程。这份文档的错误很少,对于Webwork核心的概念的理解准确到位,是入门者学习Webwork或Strus2的极佳读物。
这个是他在Javaeye上的原帖地址:
http://www.iteye.com/post/29205
可惜的是他所贴出的地址已经无法访问,我会尽快找出这份原始资料并上传成附件供大家参考的。
3. Javaeye上对于moxie教程的补充系列和讨论 ———— 推荐指数: 4颗星
在04年以后,Javaeye一度曾经热火朝天的进行Webwork/XWork的宣传,事实也证明了Robbin的眼光,Webwork2与Struts合并成为Struts2,以Webwork2为基础,并且逐渐发展为Web层最重要的开发框架之一。
在这个过程中,Javaeye上涌现出一批非常好的帖子,包括moxie, Quake Wang, Tin等同学都贡献了极佳的文章,我在这里简单推荐几篇值得一读的文章:
[moxie] WebWork2多模块解决方法:
http://www.iteye.com/topic/6529
[moxie] 在WebWork2 Action中如何自动设置Array、List、Map:
http://www.iteye.com/topic/8770
[Tin] webwork 2.2 中如何给Collection赋值:
http://www.iteye.com/topic/17939
[zhuam] WebWork2.x源码分析:
http://www.iteye.com/topic/10347
[moxie] 纠正WebWork2的Model-driven(模型驱动)Action:
http://www.iteye.com/topic/12505
[Quake Wang] 对于moxie的《WebWork教程》补充 - [文件上传]:
http://www.iteye.com/topic/10697
[Quake Wang] 对于moxie的"WebWork教程"补充 - [类型转化]:
http://www.iteye.com/topic/10507
[曹晓钢] webwork2 action和Spring结合的两种方式:
http://www.iteye.com/post/44853
针对这些文章,大家最好是带着问题去读,把这些文章当作是专题、最佳实践来读,而不是当作真正的文档来读,这样效果是最好的。当然,这里绝大多数文章是Webwork2的,大家完全可以忽略这个名词,把它当作Struts2来读,并吸取其中的精华部分。
Javaeye在Webwork2和Struts2方面的贡献远远不止我上述列出的这些文章。还有无数的革命先辈曾经贡献过非常好的文章,在这里就不一一列举了,大家可以根据需要,使用论坛的搜索功能。
4. 夏昕同学的开源文档:《Webwork2 开发指南》 ———— 推荐指数: 3颗星
《Webwork2 开发指南》的下载地址为:
http://wiki.redsaga.com/confluence/display/RSTEAM/Home。
夏昕同学的开源文档系列曾经一度伴随早期的开源框架学习者读过枯燥的学习生涯。不过相比其他两本开发指南,这本书的质量我认为着实一般。所以大家可以有选择性的阅读。针对其中的某些作者的观点,也不必奉若神灵。
5. 网友Max贡献的系列教程 ———— 推荐指数: 3颗星
系列教程的地址:
http://www.blogjava.net/max/category/16130.html
我看论坛上有不少人是看着这个教程入门的:
ray_linn 写道
我觉得你也不用全写了, Max的那几篇struts 2.0真的写得相当不错,做点适当的补充就成了。
http://www.blogjava.net/max/category/16130.html
这个教程我事先没有读过,见到网友列出了链接,我也就顺便去看了一下整个系列的文章。应该说Max同学非常认真努力的在试图完成这整个系列的文章,并且也针对Struts2的方方面面做了一些分类讲解。不过我对这个系列文章的看法是:可以通过扫读的方式阅读,针对里面的示例代码,就不用去尝试了,而某些观点,也不要深究了。因为其中的某些代码是存在问题的,也不是很贴近实际,其中的讲解也存在着不小的问题。
在这里我简单列举几处非常明显而不该犯的错误:
我们首先来看看其第一篇文章:
http://www.blogjava.net/max/archive/2006/10/10/74353.html。其中写到有关Struts2的Action的测试的代码:
package tutorial;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldTest {
@Test
public void testExecute() {
HelloWorld hello = new HelloWorld();
hello.setName("World");
String result = hello.execute();
assertTrue("Expected a success result!", ActionSupport.SUCCESS.equals(result));
final String msg = "Hello, World!";
assertTrue("Expected the default message!", msg.equals(hello.getName()));
}
}
对此,我深表遗憾。也请广大读者不要被这样的代码所误导。Struts2的Action的正确的测试方式,请参考:
http://struts.apache.org/2.0.14/docs/guides.html <--- 官网文档首页中对测试Action的链接
http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html <--- 官网文档中讲述测试Action所引用的链接
我们再来看看Max同学对Struts2中非常核心的功能Interceptor的讲解:
http://www.blogjava.net/max/archive/2006/12/06/85925.html
抛开示例不谈,从他给出的这幅图来看,至少还缺少了拦截器中的重要定义:PreResultListener。同时,由于没有结合源码进行讲解,事实上他也无法表示出它时序图中Interceptor的真正实现机制,至少无法准确指出before,after,以及preResultListener这样的程序插入点在拦截器中的调用顺序。有一定Struts2拦截器知识的人都知道,Struts2中的拦截器的核心是沿着拦截器链的一串拦截器的递归调用。正因为有着这一串的递归调用,才使得before,after,以及preResultListener这样的程序插入点能够按照规则有序执行。
如果我们同样参考一下Struts2官方的reference对拦截器的讲述呢:
http://struts.apache.org/2.0.14/docs/interceptors.html
大家可以看到,在官方讲解的最后,用了一个简单的示例清晰地说明Action与拦截器的调用顺序和执行关系。大家完全可以进行一下比较,到底是那边的讲解更能让你明白一些。
再来看看Max同学在国际化章节上的答疑:
http://www.blogjava.net/max/archive/2006/11/01/78536.html
max 写道
可能大家会问为什么一定要通过Action来访问页面呢?
你可以试一下不用Action而直接用JSP的地址来访问页面,结果会是无论你在下拉列表中选择什么,语言都不会改变。这表示不能正常运行的。其原因为如果直接使用JSP访问页面,Struts 2.0在web.xml的配置的过滤器(Filter)就不会工作,所以拦截器链也不会工作。
这就更加让人有点摸不着头脑了,"直接使用JSP访问页面,Struts 2.0在web.xml的配置的过滤器(Filter)就不会工作",你的web.xml不是配置的匹配/*作为你的Filter的响应URL规则嘛?为什么Filter会不工作?这里不免有点答非所问了。
可能文章中还有一些其他的问题,我就不一一指出了。对于这样的网络教程,我的态度是你可以读,但是需要精读,并且需要足够的思考来辨别真伪,否则,可能会被之忽悠。
6. 以《Struts2权威指南》为首的有价书籍 ———— 推荐指数: 负
这类书籍我的推荐指数为负数的最重要的理由在于,这些书籍都很贵。我首先不去评论这些书写得好坏,单就这价钱,我认为大家还是省下这些钱捐助希望工程吧。因为事实上,网络上已经有足够的教学资料和教学文章,我们不必舍近求远,还搭上人民币。
这类书籍的其他问题,我在《Struts2的学习途径》中已经阐述,在这里我就不再一一列举了。
分享到:
相关推荐
李刚的Struts 2.1权威指南:基于WebWork核心的MVC开发,写的很详细。一共有九个压缩文件。
- **第2章Struts2下的HelloWorld**:通过一个简单的示例展示如何搭建Struts2环境并运行第一个程序。 - **第3章Struts2基础**:涵盖Struts2的核心组件、配置文件、请求处理流程等基础知识。 - **第4章深入Struts2**:...
《Struts2权威指南》是由著名Java技术专家李刚编著的一本经典教材,这本书深入浅出地讲解了Struts2的核心概念、架构和使用方法。书中不仅涵盖了Struts2的基础知识,还详细讨论了如何将Struts2与其他流行技术如Spring...
在这个实战教程中,作者李刚聚焦于Struts 2、Spring和Hibernate这三个核心组件的整合,它们是Java EE领域中非常流行的开源框架,用于构建现代化的Web应用程序。 Struts 2是一个强大的MVC(模型-视图-控制器)框架,...
本教程将引导你逐步了解和掌握Struts2的基础知识,结合李刚老师的《轻量级JAVA EE 企业应用开发实践》教材,帮助你深入理解Struts2的核心概念和使用方法。 在Web开发中,MVC模式是一种常见的架构模式,它将应用程序...
《Struts2权威指南》是李刚先生撰写的一本深入解析Struts2框架的专业书籍,其源代码的提供对于读者理解和实践Struts2框架具有极大的帮助。 源代码通常包含了书中讲解的各种示例和实战项目,使得学习者能够通过实际...
10. **最佳实践**:结合李刚系列书籍,开发者可以学习到使用Struts2 3.4.1的最佳实践,包括如何编写可维护的Action、如何有效地利用拦截器、如何优化视图模板等。 总之,这个亲测Struts2 3.4.1必需包为开发者提供了...
学习JEEE的经典教材,由李刚老师编著,这是最新的第三版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。该书在2011年2月由电子工业出版社出版 由于上传文件大小限制本书被压缩为四个部分,此附件...
李刚老师编著的,Struts2权威指南完整版(上).pdf。可以帮助初学者入门,帮助入门者提高。
总之,Struts2是Java Web开发中的重要工具,李刚老师的《Struts2权威指南》为开发者提供了全面的学习资源,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅,提升自己的开发技能。通过阅读本书,你将能够深入...
《Struts2权威指南》由李刚编著,全面深入地介绍了Struts2框架的各个方面,是学习和掌握Struts2不可或缺的参考资料。 在Struts2框架中,主要涉及以下核心知识点: 1. **基础概念**:Struts2是Struts1的升级版,...
《Struts2权威指南》是李刚先生撰写的一本深入解析Struts2框架的专业书籍,其源码的提供对于学习和理解Struts2的工作原理非常有帮助。 源码分析: 1. **Action与结果类型**:在Struts2中,Action是业务逻辑的载体...
《轻量级Java EE企业应用实战 第3版》是一本深度探讨Java EE开发技术的书籍,专注于Struts 2、Spring 3和Hibernate这三大框架的整合应用。这本书旨在帮助开发者掌握如何在实际项目中有效地集成这三个流行的技术,...
《Struts2权威指南》这本书由李刚撰写,电子工业出版社出版,为开发者提供了全面的Struts2学习资源。 Struts2的核心特性包括: 1. **拦截器(Interceptors)**:Struts2的拦截器是基于AOP(面向切面编程)的概念,...
总之,《Struts2权威指南完整版》是一本全面深入的Struts2学习资料,对于希望掌握这一框架及其与相关技术整合的Java开发者来说,具有很高的参考价值。通过阅读此书,读者不仅可以学习到Struts2的基本用法,还能了解...
李刚编著的《Struts2权威指南》是一本深入剖析该框架的书籍,它以丰富的实例和详尽的参数解析,帮助开发者从基础到高级全面掌握Struts2的使用。 1. **Struts2框架概述** - Struts2是Apache软件基金会下的一个开源...
《轻量级Java EE企业应用实战(第4版)》这本书深入探讨了Struts 2、Spring 4和Hibernate这三大框架的整合开发,旨在帮助读者掌握如何在实际项目中高效构建Java EE应用。SSH(Struts 2、Spring、Hibernate)是Java ...
《Struts2权威指南》是李刚编著的一本深入讲解Struts2框架的书籍,包含了全面的理论知识和实践案例。 在提供的源代码中,我们可以看到以下几个文件和目录: 1. **目录.txt**:这本书的完整章节目录,它将帮助读者...