2011-12-20 47 views
5

这真是一个普遍的问题。Spring MVC Struts混合

我有一个电子商务Web应用程序,我约4年前建立独奏。当时,我决定使用Struts作为我的mvc框架。随着多年工作在其他项目上的工作,我开始欣赏并感受Spring MVC提供的功能集和灵活性。

服务层是坚实的,并且是使用spring框架构建的。

我想重构我目前的web层,现在使用Spring MVC。但正如我前面提到的,我写了应用程序独奏,它更像是一个侧面项目。重要的是我没有时间,也不想冒风险和从头开始完全重新设计web层。

所以我问社区他们的策略是什么,这个重构工作?理想情况下,我想一次处理几件,最终混合这两种技术,直到最终我可以完全关闭Struts为止。

我的网站的所有新功能最好在Spring MVC中开发。

好的是,我现有的视图,目前使用的Apache瓷砖,不会有太大的变化,除了删除struts标签库,并用Spring MVC取代它们。

我想保留的一个要求是URL不应该改变。

换句话说,ActionServlet和DispatcherServlet将不得不映射到单独的路径,但以某种方式转到不同的实现。

例如,我怎么能说mysite.com/show-product映射到Spring Dispatcher servlet,但mysite.com/show-category映射到Struts动作servlet。

您的想法值得赞赏。

回答

1

您可以使用适当的映射在同一个容器中运行它们。

我不明白这个问题:“我应该将动作类转换为一个一个的控制器吗?”,你会怎么做?

一个动作类是否应该映射到控制器的一个方法,与现有应用程序的组织结构相比,至少应该如何组织Spring应用程序。

+0

是的,我明白你的意思有关转换动作类去春来控制器,我想这不是真的有道理......我很抱歉产生混淆......关于在同一个容器中运行它们,如果我有要求URL不应该改变的情况......有没有办法解决它?换句话说,ActionServlet和DispatcherServlet将不得不映射到单独的路径吗?我必须有链接http://www.mysite.com/show-product(struts)和www.mysite.com/2.0/show-product(spring mvc)对吗? –

+0

@RoyKachouh取决于;这使得它更有问题,因为您需要选择性地禁用S2请求处理。这可能来自S2.1.mumble。虽然我不确定拦截器的机制是什么,但是没有考虑到它,你可能可以使用自定义过滤器或者使用拦截器。 –

+0

你能找到一些解决方案吗? – abhi