spring整合struts2

以下介绍几个配置部分的配置,这几个部分配置好了,也就可以了,先上工程图
 spring整合struts2

一、配置web.xml
<context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/beans.xml</param-value>
   </context-param>
   <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
      
  <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>*.action</url-pattern>
  </filter-mapping>

以上主要配置spring为随着服务器启动而自启动,配置struts2过滤器,配置spring配置文件的位置

二、action类代码

public class LoginAction {
    LoginService loginService;
    public LoginService getLoginService() {
        return loginService;
    }
    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }
    public String execute() throws Exception {
        loginService.hello();
        return "success";
    }
}
LoginService 为要注入的对象,需有set方法

三、spring配置文件beans.xml
    <bean id="loginService" class="com.ssh2.serviceimpl.LoginServiceImpl"></bean>
    <bean id="login" class="com.ssh2.action.LoginAction" scope="prototype">
    <property name="loginService" ref="loginService"/>
    </bean>
这里名为login的bean是struts2中的action,由spring负责action的创建,在该action中
设置loginService属性

四、struts2的配置文件
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> 
<include file="struts-default.xml"></include>
<package name="" extends="struts-default" namespace="/mm">
<action name="login" class="login">
<result name="success">/success.jsp</result>
</action>
</package>

以上指定了对象工厂为StrutsSpringObjectFactory,这样struts2的action就不再又struts2而是由spring
负责产生了
另外action元素中的class属性不再指向其实际的class,而是指向beans.xml中某个action bean的id

测试:http://localhost:8080/SS2H/mm/login.action
这样就完成了两者的整合

另外要注意的是要导入好所需要的jar包,比如struts2的spirng插件包,spring的web包

你可能感兴趣的:(spring,bean,Web,xml,struts)