Spring与Struts集验方式一
Spring与Struts集成方式一
我们在Struts中在action类中调用Model层组件进行业务逻辑操作。那么有了spring后,我们一般要使用ioc的依赖注入获得bean,比如说现在们应该可以在action类中通过spring ioc 获得Dao Bean,再调用Dao Bean中的方法。
配置过程: 一、配置struts *新建web项目,加入struts相关类库,及jstl.jar和standard.jar *修改web.xml,加入ActionServlet *拷贝tld文件及struts-config.xml文件,validation.xml文件到WEB-INF目录 *拷贝资源文件MessageResources.properties到src目录 二、配置spring *拷贝spring.jar,aspectj下的两个jar,common-loging.jar,log4j.jar到lib目录,如果包有重复,尽量用最新版本。 *拷贝spring的配置文件applicationContext.xml和log4j.properties到src目录 三、创建jsp,formBean,action等 四、创建UserDao,UserDaoImpl类,并在LoginAction中调用。测试在没有使用spring的时候结果是否正确。 五、下面我们要将spring的配置文件与web.xml关联起来。 可以到spring源代码的事例jpetStore项目中查看web.xml 拷贝到我们项目中的web.xml中: <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dataAccessContext-local.xml /WEB-INF/applicationContext.xml</param-value> <!-- <param-value>/WEB-INF/dataAccessContext-jta.xml /WEB-INF/applicationContext.xml</param-value> --> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 我们项目中使用如下: <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 表示先从WEB-INF下找,如果找不到就到src目录下找applicationContext.xml 六、取到ApplicationContext实例,在LoginAciton中有取的实现代码 WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); UserDao userDao = (UserDao)wac.getBean("userDao"); 注意别忘了在spring配置文件中加入userDao的定义 测试结束。