Spring mvc 如何将struts2转换为SpringMVC

Spring mvc 如何将struts2转换为SpringMVC,spring-mvc,struts2,Spring Mvc,Struts2,我不想讨论是否从struts2->SpringMVC进行转换。我有最好的理由这么做。这是客户的要求/付款方式 我在1年前做过Struts,也做过SpringMVC。我希望通过xml进行配置,而不是过多地使用注释 我的计划是: 使用每个struts2 action类,了解正在发生的操作,然后创建一个干净的API来委托给业务层。此步骤不是必需的。它在这里,所以我们可以重构任何有意义的东西 为每个struts 2动作类创建一个SpringMVC控制器(大致) 我知道这只是触及需要做的事情的表面。还有什

我不想讨论是否从struts2->SpringMVC进行转换。我有最好的理由这么做。这是客户的要求/付款方式

我在1年前做过Struts,也做过SpringMVC。我希望通过xml进行配置,而不是过多地使用注释

我的计划是:

  • 使用每个struts2 action类,了解正在发生的操作,然后创建一个干净的API来委托给业务层。此步骤不是必需的。它在这里,所以我们可以重构任何有意义的东西
  • 为每个struts 2动作类创建一个SpringMVC控制器(大致)
  • 我知道这只是触及需要做的事情的表面。还有什么要补充的吗

    提前感谢,


    Andrew

    如果struts2操作创建正确,那么服务层就已经有了一个干净的API。希望Struts2应用程序已经在使用SpringDI。Struts2对象可以重用。但是web层相对较薄,因此最好删除struts2操作的任何痕迹以简化进一步的开发,而不是留下奇怪的工件

    struts的用户负责四个主要部分

  • 动作类
  • 视图图层中的Struts2特定标记
  • 验证
  • 拦截器
  • 前面提到的action类应该很薄,它的主要用途是在对象到达视图的过程中封送对象。(要封送它们,需要设置表单参数并验证它们)。如果对象是从服务层获取的,那么您应该能够将逻辑大部分剪切并粘贴到Spring控制器中。如果您发现应该在服务层中的逻辑,那么应该将其向上推

    视图层中的标记我不太确定。在可能的情况下,最好用jstl标记替换特定于struts的标记。Struts2没有一个庞大的标记集,标记之间应该有一个几乎一对一的映射,但是您需要弄清楚该映射是什么(以及哪个标记库最好)

    验证——我不知道SpringMVC是如何进行验证的

    拦截器解决了交叉问题,我不知道Spring拦截器是如何工作的。Spring可能通过AOP解决定制拦截器的问题


    总而言之,web层不应该具有很强的侵入性。。。我不确定你会得到什么。请注意,如果您当前的S2应用程序没有使用SpringDI,那么添加AOP和它非常容易,您甚至可以将操作的创建委托给Spring。因此,我希望在这样的转换中获得很少的回报。另一种方法是,使用SpringMVC开始构建您需要的东西,并将struts2操作转换为web服务(json非常简单)。然后,当您有时间在SpringMVC中实现它们时,就可以逐个地将它们拆下。转换意味着理解两个系统并映射它们,这是混乱和容易出错的。。。这具有相同的最终效果(删除struts2框架),但也可以提高生产率

    如果struts2操作创建正确,那么服务层就已经有了一个干净的API。希望Struts2应用程序已经在使用SpringDI。Struts2对象可以重用。但是web层相对较薄,因此最好删除struts2操作的任何痕迹以简化进一步的开发,而不是留下奇怪的工件

    struts的用户负责四个主要部分

  • 动作类
  • 视图图层中的Struts2特定标记
  • 验证
  • 拦截器
  • 前面提到的action类应该很薄,它的主要用途是在对象到达视图的过程中封送对象。(要封送它们,需要设置表单参数并验证它们)。如果对象是从服务层获取的,那么您应该能够将逻辑大部分剪切并粘贴到Spring控制器中。如果您发现应该在服务层中的逻辑,那么应该将其向上推

    视图层中的标记我不太确定。在可能的情况下,最好用jstl标记替换特定于struts的标记。Struts2没有一个庞大的标记集,标记之间应该有一个几乎一对一的映射,但是您需要弄清楚该映射是什么(以及哪个标记库最好)

    验证——我不知道SpringMVC是如何进行验证的

    拦截器解决了交叉问题,我不知道Spring拦截器是如何工作的。Spring可能通过AOP解决定制拦截器的问题

    总而言之,web层不应该具有很强的侵入性。。。我不确定你会得到什么。请注意,如果您当前的S2应用程序没有使用SpringDI,那么添加AOP和它非常容易,您甚至可以将操作的创建委托给Spring。因此,我希望在这样的转换中获得很少的回报。另一种方法是,使用SpringMVC开始构建您需要的东西,并将struts2操作转换为web服务(json非常简单)。然后,当您有时间在SpringMVC中实现它们时,就可以逐个地将它们拆下。转换意味着理解两个系统并映射它们,这是混乱和容易出错的。。。这具有相同的最终效果(删除struts2框架),但也可以提高生产率

    参见问题:和参见问题:和