Web applications Struts 2到spring mvc的迁移

Web applications Struts 2到spring mvc的迁移,web-applications,spring-mvc,struts2,migration,Web Applications,Spring Mvc,Struts2,Migration,我正处于将Struts 2应用程序迁移到SpringMVC框架的早期阶段。我已经在项目中添加了几个spring模块,包括SpringCore、SpringSecurity,现在我将尝试脱离struts,转而支持SpringMVC 不过,我遇到了一些困难——我正在尝试将我的一些struts操作重新映射到bean。下面是一个例子: 我在struts.xml文件中配置了一个操作: ... /WEB-INF/jsp/tools/home.jsp ... 因此,基本上我有一个tools.home js

我正处于将Struts 2应用程序迁移到SpringMVC框架的早期阶段。我已经在项目中添加了几个spring模块,包括SpringCore、SpringSecurity,现在我将尝试脱离struts,转而支持SpringMVC

不过,我遇到了一些困难——我正在尝试将我的一些struts操作重新映射到bean。下面是一个例子:

我在struts.xml文件中配置了一个操作:


...
/WEB-INF/jsp/tools/home.jsp
...
因此,基本上我有一个tools.home jsp页面,它是上面定义的操作的视图。我已经为此视图创建了一个控制器类(基本上只是将实现从操作中移除,并将其移动到groovy控制器类中):

@控制器
@请求映射(“/tools”)
类控制器{
...
公共字符串getAllRerts(){
...
返回ActionSupport.SUCCESS;
}    
...
}
现在我正试图找出如何将这两个连接起来,这就是我遇到的困难

  • 我不知道如何使struts遵从struts.xml中定义的映射(我仍然希望剩下的struts操作得到支持,因为我将一个接一个地将这些操作移动到控制器中

  • 我不知道如何正确配置从命名空间到控制器到视图的映射

  • 这是我试过的-

    web.xml:

    
    mvc调度器
    org.springframework.web.servlet.DispatcherServlet
    1.
    mvc调度器
    /PBDashboard/*
    
    servlet.xml:

    //Spring应该自动找到我的控制器,因为它存在于这个包中

    <context:component-scan base-package="com.carfax.pb.dashboard.processing.action" />
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/jsp/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    
    
    /WEB-INF/jsp/
    .jsp
    
    My web.xml具有Struts2筛选器和筛选器映射,设置如下:

    
    支柱2
    org.apache.struts2.dispatcher.FilterDispatcher
    支柱2
    /*
    
    当我导航到appname/tools时,我得到一个struts错误,它说“没有为命名空间/和操作名工具映射的操作”

    这显然是正确的,但我觉得我已经建立了一个SpringMVC应该使用的映射


    有没有人能告诉我一些关于如何正确地做到这一点的信息/甚至更好,并指出我的错误?

    如果我是正确的,您的web.xml还应该在/*上具有Struts过滤器。然后您可以将DispatcherServlet映射为默认servlet(/),并使用类似以下内容排除Struts.xml中迁移的操作:

    <constant name="struts.action.excludePattern" value="/tools"/>
    
    
    

    Struts应该处理除/tools之外的所有请求,并将/tools URL留给Spring处理。

    嗨,Mike,我仍然有问题。我的web.xml确实包含Struts的过滤器/映射。我将排除模式添加到Struts.xml文件中。我将Dispatcher Servlet映射到“/”我还是遇到了同样的错误。Iv'e也尝试了/PBDashboard/*但仍然没有成功。您使用的是什么Stuts版本?excludePattern只是在2.1+或其他版本中添加的……要添加struts excludePattern是一个正则表达式,请参见示例。