什么是Struts 1.x和Struts 2.x之间的区别

时间:2009-04-27 12:33:41

标签: java-ee struts2 struts struts-1

我想知道Struts 1.x和Struts 2.x

之间的区别

4 个答案:

答案 0 :(得分:14)

这是一个完全不同的网络框架...... Struts2基本上是旧的Webwork。

一些差异:

  • Struts2适用于POJO,不再使用ActionForms。请求中的所有属性都填充在“标准”Java类中。
  • Struts2操作未与Servlet API耦合,它们不接收HttpServletRequest和HttpServletResponse作为参数。此外,他们是有状态的,(Struts 1的行为是无国籍的)。
  • Struts2有很多增强功能,比如Interceptor API,还有很多集成。
  • 配置完全不同。

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

答案 1 :(得分:13)

主要区别在于,在 Struts1.x 中,请求直接转到servlet,而在 Struts2.x < / strong>请求和响应traval虽然是拦截器或过滤器的堆栈。常规逻辑可以放在Filter类中,开发人员可以专注于业务逻辑。除此之外,目录结构也存在差异。

最好先了解 Struts1.x和Struts2.x 之间的区别。以下是http://www.geekinterview.com/question_details/64360的引用:


1。行动类

Struts 1.x 中,操作类应该扩展Action(或DispatchAction)类,而execute方法有多个参数和一个ActionForward返回类型,但在 struts 2.x < / strong> action类也可以是简单的pojo,执行方法只返回一个没有任何输入参数的字符串。


2。 Servlet依赖

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


3。获取输入

  • Struts1.x 表单中,bean用于定义属性,getter和amp; setter,在 struts2.x 中,getters / setter在动作类本身中定义。
  • Struts1.x 表单bean类必须扩展ActionForm或ValidatorForm,但 Struts2.x bean也可以是POJO。

4。可测试性

  • 在Struts1.x中,execute()方法公开servlet API以进行测试。
  • Struts2.x 依赖注入用于简化测试过程。

5。表达式语言

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

6。类型转换

  • Struts1.x 属性中,属性几乎为String格式,转换器是每个类都不可配置。
  • Struts 2.x 使用OGNL进行类型转换

7。验证

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

答案 2 :(得分:1)

转到此链接,它将帮助您:

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

答案 3 :(得分:1)

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

http://struts.apache.org/2.1.6/docs/comparing-struts-1-and-2.html