Unmi的Struts2学习笔记(一) - 编程入门网
Unmi的Struts2学习笔记(一)时间:2011-09-04 Unmi.cc 隔叶黄莺Struts 从1.1使用到1.3已有多年,都升成2了,却来了个大变脸,须重新审视 一番了。从头学习,记下笔记,以要点式。 1. Struts2 与 Struts1 似乎没什么血缘关系了,承自于 WebWork,直害 WebWork 不再推出新版本了,原先的 WebWork 使用者只需顺其然,即是水道渠成 ;相反 Struts1 的开发经验对于 Struts2 却没有太大的帮助。 2. Struts1 的核心控制器是 ActionServlet,而 Struts2 的核心控制器是 FilterDispatcher。Struts2 的业务 Action 会在运行时生成 Action 代理。 3. Struts1 的 Action 须继承抽象 Action 类,侵入了 Servlet API;而 Struts2 的 Action 可以实现 ActionSupport,或者只要一个纯净的 POJO 来充 当,完全与 Servlet 绝缘。也因此带来测试性 Struts2 要比 Struts1 强,可把 Struts TestCase 扔到一旁去了。 4. Struts1 在运行时一个 Action 只会生成一个实例,而 Struts2 中的 Action 会应对每个请求生成新的实例,在线程安全性方面,Struts1 要多些考虑 。 5. Struts1 依靠 ActionForm 来接受数据,它也是依赖于 Servlet API ,并 非普通的 JavaBean,而 Struts2 可在 Action 属性中获取请求的属性,当然也 能封装在一个独立的 POJO 中。不过提醒一下,在 Struts1.3 中也可以用 POJO 来接受请求属性,但使用起来有点烦琐。 6. Struts2 使用了新的 OGNL 的表达式语言,可以访问值栈,在对集合和索 引属性的支持上功能更强大。 7. Struts1 的配置文件只需 struts-config.xml;Struts2 的配置文件有 struts.xml 和 struts.properties。struts.properties 中有两个 struts.devMode = fase 和 struts.configuration.xml.reload = true 很可爱 ,分别设置当前是开发还是生产模式,以及 struts.xml 改变后是否自动重新加 载,免去了改配置手工重启应用的必须步骤。 8. Struts2Action 的 execute() 无参,返回的是一个字符串,不像 Struts1 Action 的 execute() 有一大串且不说,光是返回 ActionForward,就让这个 Action 与 Struts1 脱不了干系;还是 Struts2 来得聪明,只返回个中性的 String,反正名字吗,猛然间这个 Action 也成 POJO 了,复用性增强了,难怪 专门有一书,名为《POJO In Action》。 9. Struts1 的视图只支持 JSP,这也不怪它,只怨出身太早,那时就只有 JSP 一种表现层。相比,Struts2 更有艳福,能贴近于 FreeMarker、Velocity、 XSLT、PDF 等视图技术。 10. Struts2 提供了功能强大复杂的标签库,统一化为 "s" 前缀。并顺应时 代潮流地加入了 AJAX 的支持。还提供了更友好的验证功能。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |