2.首先配置struts2的内容: 2.1在web.xml中配置struts2 的 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 2.2在src目录下创建struts的配置文件struts.xml 文件配置内容如下。 "http://struts.apache.org/dtds/struts-2.3.dtd"> 3.下面是我的项目的文档结构src下的文件可以测试 3.1 创建测试文件进行测试TestStruts2Action package com.hzl.ssi.testStruts2Action; /** * @author hanzl * 作用:测试struts2的作用 */ importjava.util.ArrayList; importjava.util.List; importjava.util.Map; import org.apache.struts2.ServletActionContext; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; importcom.hzl.ssi.model.UserModel; importcom.hzl.test.service.TestService; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class TestStruts2Action extends ActionSupport implements Action { private String acStr="我的ssi整合中Struts2的Action"; public String getAcStr() { returnacStr; } public void setAcStr(String acStr) { this.acStr = acStr; } public String execute() { String id="001"; System.out.println("正在执行 execute()方法"); return SUCCESS; } } 3.2在浏览器里输入localhost/ssi/test.action测试能否跳转到index页面 Index.jsp <%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%> <%@taglibprefix="s"uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> This is my JSP page. ${acStr} 3.3 Struts2配置成功运行结果: 4.接着要整合struts2和Spring 4.1在web.xml创建Spring 的以及管理Spring的配置文件applicationContext.xml,我的Spring的文件是放在默认路径下的。当然也可放在别处。 配置如下: org.springframework.web.context.ContextLoaderListener 4.2接着就是配置applicationContext.xml了,目的是吧Struts2的Action交给Spring去管理 这事需要在struts.xml中加上一句话 4.3接下来就是在application.xml中的具体配置了 由于我的项目已经配置完毕,测试struts2和Spring整合时只需要删除其他的jdbc等,还有service等,多动手才会更明白。 xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> 到这里基本Struts2和Spring整合基本完毕了。 5.接着要把ibitas整合上去这里主要是在applicationContext中配置 5.1首先要把连接数据库的属性文件放入到src目录下jdbc.properties 文件内容: 注意:这里用的Oracle数据库 jdbc.driver = oracle.jdbc.driver.OracleDriver jdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:orcl jdbc.user = hanzl jdbc.password =password 5.2创建ibitas核心文件 ibatis.xml内容如下 maxSessions="10"maxTransactions="5"useStatementNamespaces="true"/> 5.3在applicationContext.xml中配置数据源等信息全部applicationContext.xml 内容如下: xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> 5.4编写测试文件测试 5.4.1需要的文件TestStruts2Action.java package com.hzl.ssi.testStruts2Action; /** * @author hanzl * 作用:测试struts2的作用 */ importjava.util.ArrayList; importjava.util.List; importjava.util.Map; import org.apache.struts2.ServletActionContext; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; importcom.hzl.ssi.model.UserModel; importcom.hzl.test.service.TestService; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class TestStruts2Action extends ActionSupport implements Action { private String acStr="我的ssi整合中Struts2的Action"; //private ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml"); //TestServicetestService=(TestService) act.getBean("testService"); TestServicetestService; private List public List return list; } public void setList(List this.list = list; } privateUserModel u=new UserModel(); publicUserModelgetU() { return u; } public void setU(UserModel u) { this.u = u; } publicTestServicegetTestService() { returntestService; } public void setTestService(TestServicetestService) { this.testService = testService; } public String getAcStr() { returnacStr; } public void setAcStr(String acStr) { this.acStr = acStr; } public String execute() { System.out.println("正在执行 execute()方法"); try { list=testService.Queryforlist(); for(UserModel u:list){ //u.setSex(list.get()) System.out.println(u.getUserid()+" "+u.getUsername()+" "+u.getSex()); } System.out.println("成功查到................."); } catch (Exception e) { e.printStackTrace(); } ServletActionContext.getRequest().setAttribute("list", list); return SUCCESS; } } 5.4.2需要的文件TestService.java packagecom.hzl.test.service; importjava.util.List; importcom.hzl.ssi.model.UserModel; public interface TestService { public void service() throws Exception; //根据ID查询 publicUserModelselectByid(String id); //查询list public List } 5.4.3需要的文件TestServiceImpl.java packagecom.hzl.test.service; importjava.util.List; importcom.hzl.ssi.model.UserDao; importcom.hzl.ssi.model.UserModel; public class TestServiceImpl implements TestService { privateUserDaouserDao=null; publicUserDaogetUserDao() { returnuserDao; } public void setUserDao(UserDaouserDao) { this.userDao = userDao; } public void service() throws Exception{ UserModelpersonInsert = new UserModel(); personInsert.setUserid("001"); personInsert.setUsername("小韩"); personInsert.setSex("男"); userDao.insertObject(personInsert); System.out.println("this is service function"); } publicUserModelselectByid(String id) { returnuserDao.selectbyid(id); } public List returnuserDao.Queryforlist(); } } 5.4.4 需要的文件UserDao.java packagecom.hzl.ssi.model; importjava.sql.SQLException; importjava.util.List; importorg.springframework.orm.ibatis.support.SqlMapClientDaoSupport; public class UserDao extends SqlMapClientDaoSupport { public Object insertObject (UserModeluserModel) throws SQLException { returngetSqlMapClientTemplate().insert("userModel.insertPerson", userModel); } publicUserModelselectbyid(String id){ return(UserModel) getSqlMapClientTemplate().queryForObject("userModel.selectByid",id); } public List return getSqlMapClientTemplate().queryForList("userModel.listUserModel"); } } 5.4.5需要的文件ibitas_userinfo.xml PUBLIC"-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> insert into userinfo (userid, username, sex ) values (#userid#, #username#, #sex# ) selectuserid,username,sex from userinfo where userid=#userid# select * from userinfo 注意:将该文件引入到ibatis核心文件ibatis.xml中 我这创建的数据库的表是userinfo 6.进行整合完后测试 测试结果: 成功完整工程下载本文