首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Struts1.x和Struts2.x有什么不同

Struts1.x和Struts2.x有什么不同
EN

Stack Overflow用户
提问于 2009-04-27 12:33:41
回答 2查看 54.1K关注 0票数 17

我想知道Struts1.x和Struts2.x之间的区别

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-12 20:25:10

主要区别在于,在Struts1.x中,请求直接到达servlet,而在Struts2.x中,请求和响应遍历通过拦截器或过滤器堆栈。常规逻辑可以放在过滤器类中,开发人员可以专注于业务逻辑。除此之外,还有目录结构上的差异。

最好了解Struts1.x和Struts2.x主题之间的区别。这里引用了http://www.geekinterview.com/question_details/64360的一个例子

1.动作类

Struts1.x中,操作类应该扩展操作(或DispatchAction)类,而execute方法具有多个参数和一个ActionForward返回类型,但在Struts2.x中,操作类也可以是简单的pojo,只返回一个字符串,而不返回任何输入参数。

2. Servlet依赖性

容器不处理Struts2.x,与Struts1.x不同,作为请求/响应对的操作和struts2.x操作仍然可以访问原始请求和响应。

3.获取输入

  • In Struts1.x form beans用于定义属性,getter和setter,在struts2.x getter/setter在操作类中定义itself.
  • Struts1.x form beans类必须扩展ActionForm或ValidatorForm,但Struts2.x beans也可以是POJO。

4.可测试性

Struts1.x execute()方法中的servlet API公开了用于testing.

  • Struts2.x依赖注入的servlet

  • ,以简化测试过程。

5.表达式语言

  • Struts1.x JSTL作为它的表达语言,而作为Struts2.x的使用比JSTL.
  • Struts2.x更强大的OGNL(Object Graphic language )作为它的表达语言也可以使用JSTL。

6.类型转换

configurable.

  • Struts中的
  • 1.x属性几乎都是字符串形式,转换器是按类的,而不是Struts2.x使用OGNL进行类型转换

7.验证

服务器端验证是在Struts2.x的action类中进行的,这是一种简单得多的方法。

票数 18
EN

Stack Overflow用户

发布于 2009-04-27 12:43:26

这是一个完全不同的web框架。Struts2基本上就是旧的Webwork。

以下是一些差异:

  • Struts2与POJO一起工作,不再使用ActionForms。来自请求的所有属性都填充在“标准”Java中,classes.
  • Struts2操作不与Servlet API耦合,它们不会接收HttpServletRequest和HttpServletResponse作为参数。而且,它们是有状态的(Struts1操作stateless).
  • Struts2有很多增强功能,比如Interceptor API,而且很多integrations.
  • Configuration是完全不同的。

我建议你让Struts1“退休”,转而使用现代的web框架。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/793291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档