jakarta-ee - Struts 1.x 和 Struts 2.x 有什么区别

标签 jakarta-ee struts2 struts struts-1

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

最佳答案

主要区别在于 Struts1.x 请求直接转到 servlet,而在 Struts2.x 通过拦截器或过滤器堆栈的请求和响应。常规逻辑可以放在过滤器类中,开发人员可以专注于业务逻辑。除此之外,目录结构也有所不同。
最好知道之间的区别Struts1.x 和 Struts2.x 明智的话题。这里引用 http://www.geekinterview.com/question_details/64360 :

1. Action 类
Struts 1.x action 类应该扩展 Action(或 DispatchAction)类,并且 execute 方法具有参数数量和 ActionForward 返回类型,但在 支柱 2.x action 类也可以是简单的 pojo,它的 execute 方法只返回一个字符串,没有任何输入参数。

2. Servlet 依赖
容器不处理 Struts2.x , 不像 Struts1.x ,作为请求/响应对的操作和 struts2.x action 仍然可以访问原始请求和响应。

3. 获取输入

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

  • 4. 可测试性
  • 在 Struts1.x 中,execute() 方法公开了用于测试的 servlet API。
  • Struts2.x 依赖注入(inject)用于简化测试过程。

  • 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 中的 Action 类中进行,这是一种更简单的方法。

    关于jakarta-ee - Struts 1.x 和 Struts 2.x 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/793291/

    相关文章:

    java - struts2中如何禁止缓存?

    java - servlet http post 和 put 方法之间的区别?

    caching - 启动时初始化 Java EE 应用程序缓存

    java - 有人知道如何将单个 Action 实例制作成struts 2吗?

    java - STRUTS2 - 值堆栈值在 URL 中传递!

    java - Spring MVC 模型属性的初始化

    java - 我想学Struts,有什么好的网站或者书籍吗?

    java - 尽管 Eclipse 使用自己的编译器,但错误显示 'configure to use a jdk'。可能是什么原因?

    java - 在 Struts 1 ActionForm 中处理异常

    java - 如何使用 spring 在 struts2 Action 中注入(inject)依赖项?