Jakarta ee Struts1.x和Struts2.x之间有什么区别

Jakarta ee Struts1.x和Struts2.x之间有什么区别,jakarta-ee,struts2,struts,struts-1,Jakarta Ee,Struts2,Struts,Struts 1,我想知道Struts 1.x和Struts 2.x之间的区别它是一个完全不同的web框架。。。 Struts2基本上是旧的网络作品 一些差异: Struts2与POJOs一起工作,不再使用ActionForms。请求中的所有属性都填充在“标准”Java类中 Struts2操作不与Servlet API耦合,它们不接收HttpServletRequest和HttpServletResponse作为参数。而且,它们是有状态的(Struts1操作是无状态的) Struts2有很多增强功能,比如拦截器

我想知道Struts 1.x和Struts 2.x之间的区别它是一个完全不同的web框架。。。 Struts2基本上是旧的网络作品

一些差异:

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

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

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

最好了解主题方面的Struts1.x和Struts2.x之间的差异。以下是一个例子:


1.动作类 在Struts 1.x中,action类应该扩展action(或DispatchAction)类,execute方法具有参数数量和ActionForward返回类型,但在Struts 2.x中,action类也可以是简单的pojo,其execute方法只返回字符串,不返回任何输入参数


2.Servlet依赖性 容器不处理Struts2.x,与Struts1.x不同,操作作为请求/响应对,而Struts2.x操作仍然可以访问原始请求和响应


3.获取输入
  • Struts1.x表单bean用于定义属性、getter和setter,而在struts2.x表单bean中,getter/setter是在动作类本身中定义的
  • Struts1.x表单bean类必须扩展ActionForm或ValidatorForm,但是Struts2.xbean也可以是POJO

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

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

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

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

它从webwork中获得了许多思考。Struts1早就应该为了支持webwork而退役了,如果您要使用任何插件,我想这可能是一个中间步骤——不要使用Dojo插件。它已被弃用,任何文档都不支持它。