在为我的新 Web 应用程序开发任务选择 Struts 1 或 Struts 2 时,我有点困惑。有人可以从架构的角度建议我应该使用哪个框架进行开发吗?在进行应用程序开发之前,选择 struts 版本应该注意什么?任何帮助将不胜感激。
问问题
1198 次
4 回答
4
Hi I prefer struts 2 because,
Struts 1.x
- In struts 1.x front controller is ActionServlet
- In struts 1.x we have RequestProcessor class
- In struts 1.x we have multiple tag libraries like html, logic, bean..etc
- In struts 1.x the configuration fine name can be [any name].xml and we used to place in web-inf folder
- In struts 1.x we have form beans and Action classes separately
- In struts 1.x an Action class is a single ton class, so Action class object is not a thread safe, as a programmer we need to make it as thread safe by applying synchronization
- In struts 1.x we have only jsp as a view technology
Struts 2.X
- In 2.x front controller is FilterDispatcher
- In 2.x we have Interceptors instead RequestProcessor
- In 2.x we do not have multiple libraries, instead we have single library which includes all tags
- In 2.x the configuration file must be struts.xml only and this must be in classes folder
- In 2.x form bean, Action classes are combinedly given as Action class only, of course we can take separately if we want
- In 2.x an Action class object will be created for each request, so it is by default thread safe, so we no need to take care about safety issues here
- In 2.x we have support of multiple view technologies like velocity, Freemarker, jasper reports, jsp.
于 2013-12-14T10:57:32.357 回答
2
既然您提到它将成为一个新的 Web 应用程序,那么就使用 Struts2。Struts1 已经在EOL中,这意味着不会再单独支持 Struts1。
此外,Struts2 是一个新的且非常灵活的框架,将为您提供更多的控制权。这里有
- 选择最新版本的 Struts2 开始工作 (2.3.15.1)
- 如果你打算在 Spring 中编写你的服务层,你可以使用 Struts2-spring 插件让 spring DI 为你管理 struts2 组件。
- 由于您似乎对 Struts2 很陌生,因此我建议特别注意 OGNL,它是 struts2 中的核心构建块,您将在 UI 的标签中大量使用它。
- Struts2 有一个非常灵活的可插入架构,它允许您创建以及使用许多插件,这可以节省您从一开始就构建功能的时间。
希望这可能对您有所帮助。此外,您还可以查看并查看其他 MVC 框架
于 2013-09-13T04:38:02.707 回答
1
我也更喜欢使用 Struts2 本身而不是 Struts1,因为 Struts1 已经过时了,并且它的 EOL 已于 2013 年 9 月 1 日宣布,消息是“Struts 1.x Web 框架已达到其生命周期,不再受到官方支持”。[来源:- wikipedia.org]
所以最好使用 Struts2 [我一直在使用版本:-2.3.1.1,因为我在使用 2.3.16 版本时遇到了一些“调度程序错误”(包中的 jar 文件相互不兼容)问题]
希望这可能会有所帮助。
于 2013-12-13T06:37:47.847 回答