整合之前,将applicationContext.xml(spring配置文件)一插件方式写入struts-config.xml(struts配置文件),即:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml">
</set-property>
</plug-in>
1.用org.springframework.web.struts.ActionSupport代替org.apache.struts.action.Action类
public class TestAction extents ActioinSupport{
public ActionForward excute(ActionMapping mapping,ActionForm form,HttpServletRequest requet,HttpServletResponse response){
.......
ClassName c =(ClassName)this.getWebApplicationContext().getBean(String BeanID);
.......
return forward.find("success");
}
}
2.用org.springframework.web.struts.DelegatingRequestProxy代替struts的request请求处理
struts-config.xml需要修改的地方
添加
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</contorller>
注:action元素的type可写也可不写,web容器会将请求直接转向spring容器(先检测到action元素的path,然后在spring配置文件中找到name属性与之相同的bean元素,当找不到时才返回struts中action元素指定的type属性)
applicatonContext.xml 修改的地方
<bean name="/testAction" class="">//与struts配置文件中的对应action元素的path值相同。,该class类应该继承Action类,实现excute方法
</bean>
3.全权代理
struts-config.xml需要修改的地方
修改action元素的type="org.springframework.web.struts.DelegatingActionProxy"
applicationContext需要修改的地方
和2中的相同