struts和spring整合有两种 方式:
当然缺少不了 导入一些必要的jar包,导入struts2和spring3的jar包
1.把struts交给spring管理(spring主动):
在web.xml中配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:bean.xml</param-value>
</context-param>
<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>
struts.xml的配置:
<!-- 这里的 class是 bean的名字-->
<action name="student" class="studentAction">
相应的action 类加的 注解(xml也可以):
@Component("studentAction")
@Scope("prototype")
public class StudentAction extends ActionSupport{
....
}
action类中 相应的 注入的 成员变量要加上@Resource,不加的 话 会有 异常 。
这样就把 struts交给spring进行管理了, 关键是 struts.xml中的 配置 要把 action对应的 class属性 改为 action对应的bean
2.struts通过spring初始化自己(struts主动)
web.xml和上面一样。
struts.xml中的 action配置课往常一样,class对应的是action类名
action类中什么注解都不加,在web项目加载的时候,struts会自动通过 spring初始化自己。
这样就 完成了 第二种 方式。
相比较两种方式,我们一般选取的是 第一种,因为整合时spring管理整个项目,因此要交给spring进行管理。
写给有需要的人。。。