spring怎么加载struts

不及物动词 其他 11

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring框架可以通过使用Struts框架的插件来加载Struts。下面是实现此过程的步骤:

    1. 首先,确保你已经正确地配置好了Spring和Struts框架。这意味着你需要在你的项目中引入Spring和Struts的相关依赖,并且配置好他们的配置文件。

    2. 在Spring的配置文件中,通过使用Struts的插件配置来加载Struts。在Spring配置文件中,你可以使用下面的示例代码来实现这个目标:

    <bean id="strutsPlugin" class="org.springframework.web.struts.ContextLoaderPlugIn">
        <property name="contextClass" value="org.springframework.web.context.support.AnnotationConfigWebApplicationContext"/>
        <property name="contextConfigLocation" value="com.example.config.PackageConfig"/>
    </bean>
    

    在上面的代码中,我们通过ContextLoaderPlugin类来加载Struts框架,并设置了Spring的上下文为AnnotationConfigWebApplicationContext,同时指定了Struts的配置文件的路径为com.example.config.PackageConfig。你需要根据你自己的项目实际情况修改这些配置。

    1. 确保你的项目的启动类或者Servlet容器的配置中已经包含了Spring框架的DispatcherServlet。这将确保你的应用程序能够正确地加载Spring和Struts。

    2. 最后,在web.xml文件中配置Spring的DispatcheServlet,并设置其加载Struts的插件。

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    在上面的代码中,我们将DispatcherServlet的contextConfigLocation参数设置为Spring的配置文件的路径。请根据你自己的项目实际情况修改这些配置。

    通过以上步骤,你就可以成功地加载Struts框架并与Spring框架一起使用了。在Spring的上下文中,你可以方便地注入Struts的Action和其他组件,并且利用Spring的依赖注入和面向切面编程等特性来增强你的Struts应用程序。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要在Spring中加载和使用Struts框架,可以按照以下步骤进行操作:

    1. 配置Struts框架依赖:在项目的构建文件(如Maven或Gradle)中添加Struts的依赖项。例如,在Maven中,可以在pom.xml文件中添加以下依赖项:
    <dependencies>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.26</version>
        </dependency>
    </dependencies>
    
    1. 配置Struts的核心过滤器:在web.xml文件中配置Struts的核心过滤器,以便请求能够正确地被Struts框架处理。例如:
    <web-app>
        ...
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        ...
    </web-app>
    
    1. 创建并配置Spring的配置文件:在Spring的配置文件中定义Struts的相关配置,以便Spring能够正确地加载并管理Struts框架的实例。例如,创建一个名为spring-servlet.xml的Spring配置文件,并添加以下内容:
    <beans>
        ...
        
        <!-- 配置Struts的Action扫描 -->
        <bean id="strutsActionScanner" class="org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider">
            <property name="basePackage" value="com.your.package.actions" />
        </bean>
        
        <!-- 将扫描到的Action注册到Spring的上下文中 -->
        <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
        
        <!-- 配置Struts的拦截器和结果类型 -->
        <bean id="strutsConfigurer" class="org.apache.struts2.dispatcher.StrutsConfigurer">
            <property name="configPath" value="/path-to-struts.xml" />
        </bean>
        
        ...
    </beans>
    
    1. 创建Struts的配置文件:在项目中创建Struts的配置文件(通常命名为struts.xml),以配置Struts框架的拦截器、结果类型和Action等。例如:
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
        
    <struts>
        ...
        
        <!-- 配置Struts的拦截器和结果类型 -->
        <include file="struts-default.xml" />
        
        <!-- 配置Action -->
        <package name="default" extends="struts-default">
            <action name="exampleAction" class="com.your.package.actions.ExampleAction">
                <!-- 配置Action的拦截器 -->
                <interceptor-ref name="defaultStack" />
                
                <!-- 配置Action的结果类型 -->
                <result name="success">/success.jsp</result>
            </action>
        </package>
        
        ...
    </struts>
    
    1. 在Spring MVC中使用Struts:如果项目已经使用了Spring MVC框架,则可以将Struts集成到Spring MVC中。可以通过在Spring MVC配置文件中配置视图解析器,并设置Struts的Action访问路径来实现。例如:
    <mvc:annotation-driven />
        
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
        
    <mvc:default-servlet-handler />
        
    <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        ...
    </bean>
        
    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        ...
        <property name="mappings">
            <props>
                <prop key="/struts2/*">strutsExecuteHandler</prop>
            </props>
        </property>
    </bean>
        
    <bean id="strutsExecuteHandler" class="org.springframework.web.servlet.mvc.ServletWrappingController">
        <property name="servletClass" value="org.apache.struts2.dispatcher.Dispatcher" />
        <property name="initParameters">
            <map>
                <entry key="config" value="/path-to-struts.xml" />
            </map>
        </property>
    </bean>
    

    以上是在Spring中加载和使用Struts框架的一般步骤。根据具体的项目架构和需求,可能还需要进行其他的配置和调整。因此,在实际应用过程中,需要根据具体情况进行进一步的配置和调整。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Spring框架中,可以使用Spring提供的DispatcherServlet来加载Struts框架。以下是加载Struts框架的详细方法和操作流程。

    1. 引入相关依赖
      首先,在你的Spring项目中引入Struts和Spring的相关依赖。在你的pom.xml文件(如果你使用Maven)或build.gradle文件(如果你使用Gradle)中添加以下依赖:

    Maven依赖:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>版本号</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>版本号</version>
    </dependency>
    

    Gradle依赖:

    implementation 'org.springframework:spring-webmvc:版本号'
    implementation 'org.apache.struts:struts2-core:版本号'
    

    请将“版本号”替换为你希望使用的Spring和Struts的版本号。

    1. 配置DispatcherServlet
      在web.xml文件中配置Spring的DispatcherServlet。DispatcherServlet是Spring MVC的核心组件,用于处理HTTP请求和响应。
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    在上述配置中,我们将DispatcherServlet的servlet-class配置为org.springframework.web.servlet.DispatcherServlet,将contextConfigLocation配置为spring-config.xml。这里的spring-config.xml是Spring的配置文件,我们稍后会创建。

    1. 创建Spring配置文件
      在src/main/resources目录下创建spring-config.xml文件,并在其中配置Spring的扫描包和视图解析器。
    <context:component-scan base-package="你的Spring控制器包路径" />
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
    

    上述配置中,context:component-scan用于扫描你的Spring控制器的包。在这个包下,你需要编写你的Spring控制器,用于处理HTTP请求。InternalResourceViewResolver用于解析视图的前缀和后缀。

    1. 配置Struts过滤器
      在web.xml文件中配置Struts的过滤器,用于拦截和处理URL请求。
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    在上述配置中,我们使用了Struts的StrutsPrepareAndExecuteFilter,它是Struts中的核心过滤器。

    1. 创建Struts配置文件
      在src/main/resources目录下创建struts.xml文件,并在其中配置Struts的相关内容。
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <constant name="struts.devMode" value="true" />
        <constant name="struts.i18n.encoding" value="UTF-8" />
        <constant name="struts.custom.i18n.resources" value="ApplicationResources" />
    
        <!-- 配置Struts的Action -->
        <package name="default" extends="struts-default">
            <action name="hello" class="你的Action类路径">
                <result>/WEB-INF/views/hello.jsp</result>
            </action>
        </package>
    </struts>
    

    在上述配置中,我们首先引入了Struts配置文件的DTD定义,然后设置了一些常量,如开发模式、国际化编码等。接下来,我们配置了一个名为“hello”的Action,它对应的类是你自己定义的Action类。最后,我们定义了一个结果视图,即/hello.jsp。

    1. 编写Spring控制器和Struts Action
      现在,你需要编写你的Spring控制器和Struts Action类。你的Spring控制器类应该在你之前配置的扫描包中,并负责处理HTTP请求和调用Struts Action。你的Struts Action类应该在你之前配置的struts.xml文件中定义的Action类路径中。

    Spring控制器示例:

    @Controller
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello() {
            return "hello";
        }
    }
    

    Struts Action示例:

    public class HelloAction extends ActionSupport {
    
        public String execute() {
            return SUCCESS;
        }
    }
    

    在上述示例中,Spring控制器的hello()方法用于处理/hello URL请求,并返回名为“hello”的视图。Struts Action的execute()方法返回了一个SUCCESS字符串,表示成功执行Action并返回结果。

    1. 创建JSP视图
      最后,创建一个名为hello.jsp的JSP视图文件,并将其放置在/WEB-INF/views目录下。
    <!DOCTYPE html>
    <html>
    <head>
        <title>Hello</title>
    </head>
    <body>
        <h1>Hello, Spring & Struts!</h1>
    </body>
    </html>
    

    现在,你可以启动你的Spring项目,并访问 http://localhost:8080/hello 来查看是否成功加载了Struts框架。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部