Struts 1.x 和 Struts 2.x 有什么区别

发布于 2024-07-18 05:53:46 字数 37 浏览 5 评论 0原文

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

I would like to know the difference between Struts 1.x and Struts 2.x

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

隐诗 2024-07-25 05:53:46

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

最好从主题角度了解 Struts1.x 和 Struts2.x 之间的差异。 以下是 http://www.geekinterview.com/question_details/64360 的引用:


1. 行动类

Struts 1.x中,动作类应该扩展Action(或DispatchAction)类,并且执行方法具有参数数量和ActionForward返回类型,但是在struts 2.x中> 动作类也可以是简单的 pojo,其执行方法仅返回一个字符串,没有任何输入参数。


2. Servlet Dependency

Container 不将 Struts2.xStruts1.x 不同,将 Actions 视为请求/响应对和 struts2.x > action 仍然可以访问原始请求和响应。


3. 获取输入

  • Struts1.x 表单 bean 用于定义属性、getter 和 getter。 setters,在struts2.x中,getters/setters是在action类本身中定义的。
  • Struts1.x表单bean类必须继承ActionForm或ValidatorForm,但Struts2.x bean也可以是POJO。

4. 可测试性

  • Struts1.x中的execute()方法公开了用于测试的servlet API。
  • Struts2.x 使用依赖注入来简化测试过程。

5. 表达式语言

  • Struts1.x采用JSTL作为其表达式语言,而Struts2.x则采用OGNL(Object Graphic Notation Language)作为其表达式比 JSTL 强大的语言。
  • Struts2.x也可以使用JSTL。

6. 类型转换

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

7. 验证

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

The major difference is that in Struts1.x the request directly goes to the servlet, whereas in Struts2.x the request and response traval though the stack of interceptor or filter. The regular logic can be placed in Filter classes and developer can concentrate on the Business Logic. Besides this there is also differences in directory structure.

It is better to know the differences between Struts1.x and Struts2.x topic wise. Here's a cite of http://www.geekinterview.com/question_details/64360:


1. Action Classes

In Struts 1.x the action classes should extend Action (or DispatchAction) class and the execute method have number of parameter and a ActionForward return type , but In struts 2.x the action class can also be simple pojo having execute method returning only a string without any input parameter.


2. Servlet Dependancy

Container does not treat Struts2.x, unlike that of Struts1.x, Actions as a request / response couple and struts2.x action can still access the original request and response.


3. Getting Input

  • In Struts1.x form beans are used to define properties, getters & setters, in struts2.x getters/setters are defined in action classes itself.
  • Struts1.x form beans class must extend ActionForm or ValidatorForm, but Struts2.x beans can also be POJO.

4. Testability

  • In Struts1.x execute() method exposes the servlet API for testing.
  • Struts2.x Dependancy Injection be used to simplify the testing process.

5. Expression Languages

  • Struts1.x JSTL as its expression language, where as Struts2.x uses OGNL(Object Graphic Notation Language) as its expression language which is very strong than JSTL.
  • Struts2.x can also use JSTL.

6. Type Conversion

  • In Struts1.x properties are almost in String form, Convertors are per class which are not configurable.
  • Struts 2.x uses OGNL for type conversion

7. Validation

Server side validation are made in action classes in Struts2.x, a much simpler way.

旧伤慢歌 2024-07-25 05:53:46

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

一些区别:

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

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

It's a totally different web framework...
Struts2 is basically the old Webwork.

Some differences:

  • Struts2 works with POJOs, no more ActionForms. All attributes from the requests are populated in "standard" Java classes.
  • Struts2 actions are not coupled with the Servlet API, they do not receive HttpServletRequest and HttpServletResponse as parameters. Also, they are stateful, (Struts 1 actions were stateless).
  • Struts2 have a lot of enhancements like the Interceptor API, plus lots of integrations.
  • Configuration is totally different.

I recommend you to "retire" Struts1 in favor of modern web frameworks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文