最新的Struts 1.x和2.x中的Struts之间的区别

问题描述 投票:14回答:4

我想知道的Struts 1.x和2.x中的Struts之间的区别

java-ee struts2 struts struts-1
4个回答
16
投票

主要的区别是,在Struts1.x请求直接进入到servlet,而在Struts2.x请求和响应traval虽然拦截或过滤器的堆栈。常规逻辑可以放置在过滤器类和显影剂可以集中于业务逻辑。除此之外也有在目录结构的差异。

这是更好地了解Struts.1和Struts2.x话题智慧之间的差异。这里有一个举qazxsw POI的:


1. Action Classes

在Struts 1.X操作类应该扩展动作(或DispatchAction的)类和执行方法具有参数和的ActionForward返回类型的数量,但在支柱2.X的动作类也可以是具有执行方法只返回简单的POJO串没有任何输入参数。


2. Servlet Dependancy

容器不治疗Struts2.x,不像Struts1.x,诉讼的请求/响应夫妇和struts2.x行动仍然可以访问原来的请求和响应。


3. Getting Input

  • 在Struts.1形式豆用于定义属性,吸气剂&设置器,在struts2.x getter / setter方法在动作类本身定义的。
  • Struts.1的form bean类必须扩展的ActionForm或验证的形式,但Struts2.x豆也可以是POJO。

4. Testability

  • 在Struts.1 execute()方法公开用于测试的小服务程序的API。
  • Struts2.x依赖注入被用来简化测试过程。

5. Expression Languages

  • Struts1.x JSTL作为其表达式语言,其中作为Struts2.x使用OGNL(对象图形符号语言),其比JSTL非常强的表达语言。
  • Struts2.x也可以使用JSTL。

6. Type Conversion

  • 在Struts1.x性质几乎String形式,转换器都是每类是不可配置的。
  • 支柱2.x使用OGNL进行类型转换

7. Validation

服务器端验证在动作类中Struts2.x,一个更简单的方式进行。


14
投票

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

一些差异:

  • Struts2的工作使用POJO,没有更多的ActionForm。所有的请求属性被填充在“标准” Java类。
  • Struts2的操作不再加Servlet API的,他们不接受的HttpServletRequest和HttpServletResponse作为参数。此外,他们是有状态的,(1个Struts的行动是无状态的)。
  • Struts2的有很多,如拦截API改进,以及大量的集成的。
  • 配置是完全不同的。

我建议你赞成现代Web框架的“退休”了Struts1。


1
投票

去这个链接就会很多帮助你:

http://www.geekinterview.com/question_details/64360


1
投票

请找到他们的网站本身的Struts 1和Struts 2的比较

http://www.java-samples.com/showtutorial.php?tutorialid=20

© www.soinside.com 2019 - 2024. All rights reserved.