Spring+Struts整合的四种方式
1.在Action中取得BeanFactory对象,然后通过BeanFactory获取业务逻辑对象
在spring配置文件中需要定义struts的Action,如:<bean name="/notes" ref="notesService"></property> ?</bean>
???? ?这里的name名称要与<action>标签的path属性值一致?
????? 将scope设置为prototype,这样就避免了struts Action的线程安全问题
????? 必须注入业务逻辑对象
???? ? private NoteService noteService ;
?
?3、使用Spring 的 ActionSupport整合Struts, struts-config.xml添加代码如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>
??Action里继承?Spring 的
ActionSupport
而不是 StrutsAction
类扩展如下:?使用
getWebApplicationContext()
方法获得一个ApplicationContext
?
public class UserAction extends ActionSupport{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ApplicationContext ctx = getWebApplicationContext(); UserService user= (UserService) ctx.getBean("xhf") ; user.load("邢**","北京"); return null ; } }
?
4、使用Spring 的
DelegatingRequestProcessor
覆盖Struts 的RequestProcessor
?? Struts-config.xml文件修改如下:
?
??
?