关于struts2+spring3+mybatis项目环境搭建

来源:互联网 发布:百度云签到源码 编辑:程序博客网 时间:2024/05/16 10:33

一:项目目录

 

1.mybatis需要导入的包

2.struts2需要导入的包

 

 3.spring3 需要导入的包

 

 二:配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"    xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">   <!-- 加载顺序 ServletContext -> context-param -> listener -> filter -> servlet -->  <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>WEB-INF/spring/applicationContext.xml</param-value>    </context-param>   <!-- 配置struts2 -->  <filter>        <filter-name>action2</filter-name>        <filter-class>            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter        </filter-class>        <init-param>            <param-name>config</param-name>            <param-value>../struts2/struts.xml</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>action2</filter-name>        <url-pattern>*.do</url-pattern>    </filter-mapping>        <!-- spring监听器:ContextLoaderListener会读取这些XML文件并产生 WebApplicationContext对象,        然后将这个对象放置在ServletContext的属性里,这样我们只要可以得到Servlet就可以得到WebApplicationContext对象        ,并利用这个对象访问spring 容器管理的bean。 -->    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>        <!-- 默认首页 -->    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>      </welcome-file-list> </web-app>

三 配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。--><constant name="struts.action.extension" value="do" /><!-- spring集成struts2 --><constant name="struts.objectFactory"value="org.apache.struts2.spring.StrutsSpringObjectFactory" /><include file="struts-default.xml" /> <include file="../struts2/struts-admin.xml" /></struts>

配置struts-admin.xml

 

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"    "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts>    <!--包命名规则:com.lgl.admin.action.AdminLoginAction需要进行安全验证的管理员模块(受管理员权限模块控制): 处理管理员信息,包括管理员信息查看、编辑、所附属功能的操作--><package name="admin" namespace="/admin" extends="struts-default" > <action name="adminLogin" class="adminLoginAction"><result name="toIndex" >/WEB-INF/success.jsp</result></action></package>  </struts>

配置spring的applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans                                   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                                   http://www.springframework.org/schema/util                                   http://www.springframework.org/schema/util/spring-util-3.0.xsd                                   http://www.springframework.org/schema/context                                   http://www.springframework.org/schema/context/spring-context-3.0.xsd                                   http://www.springframework.org/schema/util                                   http://www.springframework.org/schema/util/spring-util-3.0.xsd                                   http://www.springframework.org/schema/aop                                   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd                                   http://www.springframework.org/schema/tx                                   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "><!-- 打开注解 --><context:annotation-config /><!-- 以 com.lgl 开始的包注解才可以被spring处理 --><context:component-scan base-package="com.lgl" /><!-- 数据源配置 --><context:property-placeholderlocation="classpath:database.properties" /><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName"><value>${driver.class}</value></property><property name="url"><value>${connection.url}</value></property><property name="username"><value>${username}</value></property><property name="password"><value>${password}</value></property><property name="maxActive"><value>5</value></property><property name="maxIdle"><value>3</value></property><property name="maxWait"><value>-1</value></property><property name="removeAbandoned"><value>true</value></property><property name="removeAbandonedTimeout"><value>400</value></property></bean><!-- 配置事物 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><tx:annotation-driven transaction-manager="transactionManager" /><!-- myBatis文件 --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation"value="classpath:mybatis-config.xml" /><property name="mapperLocations"value="classpath:com/lgl/*/dao/mapper/*.xml" /><property name="dataSource"><ref bean="dataSource" /></property></bean><!-- spring会自动搜索com.lgl,包括其子包下的接口,如果接口XXX有@Repository注解,spring会自动生成此类的代理,相当于XXXImpl --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lgl" /><property name="annotationClass"value="org.springframework.stereotype.Repository" /></bean><!-- 提供给dao层使用,mybatis的spring支持--><bean name="sqlSession"class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory" /><constructor-arg index="1" value="BATCH" /></bean> </beans>

配置database.properties

##################################### Database Connectivity Properties#####################################sqlserver#driver.class=net.sourceforge.jtds.jdbc.Driver#connection.url=jdbc:jtds:sqlserver://192.168.0.*:1433;DatabaseName=lgldb#username=root#password=driver.class=com.mysql.jdbc.Driverconnection.url=jdbc:mysql://192.168.0.**:3306/test?characterEncoding=utf8username=rootpassword=#oracle#driver.class=oracle.jdbc.driver.OracleDriver#connection.url=jdbc:oracle:thin:@192.168.0.*:1521:lgldb#username=#password=#mysql#driver.class=net.sourceforge.jtds.jdbc.Driver#connection.url=jdbc\:mysql\://192.168.0.**\:3306/lgldb?useUnicode\=true&characterEncoding\=utf8#username=root#password=

配置mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- <typeAliases><typeAlias type="com.lgl.admin.model.ExtAdmin"alias="ExtAdmin" /></typeAliases>--></configuration>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page">  </head>    <body>   <form id="AdminLogin" name="AdminLogin" method="post" action="<%=path%>/admin/adminLogin!doLogin.do">    工号:<input type="text" name="extAdmin.name" id="username" /><br>    密码:<input type="password" name="extAdmin.password" id="pwd" />    <input type="submit" />    </form>  </body></html>

success.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>登录成功!!!</body></html>

AdminLoginAction.java

package com.lgl.admin.action;import javax.annotation.Resource;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.lgl.admin.model.ExtAdmin;import com.lgl.admin.service.AdminService;@Controller("adminLoginAction")@Scope("prototype")public class AdminLoginAction{    /**    * Logger for this class    */    private static final long serialVersionUID = -8757129944636650011L;        @Resource    private AdminService adminService;        private ExtAdmin extAdmin;        public String doLogin()    {        adminService.insert(extAdmin);        return "toIndex"; //都相同,登录成功    }        public ExtAdmin getExtAdmin()    {        return extAdmin;    }        public void setExtAdmin(ExtAdmin extAdmin)    {        this.extAdmin = extAdmin;    }}

ExtAdmin.java
package com.lgl.admin.model;public class ExtAdmin{    private String name;        private String password;        public String getName()    {        return name;    }        public void setName(String name)    {        this.name = name;    }        public String getPassword()    {        return password;    }        public void setPassword(String password)    {        this.password = password;    }    }

AdminService.java
package com.lgl.admin.service;import com.lgl.admin.model.ExtAdmin;public interface AdminService{        int insert(ExtAdmin extAdmin);    }

AdminServiceImpl.java

package com.lgl.admin.service;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.lgl.admin.dao.ExtAdminDAO;import com.lgl.admin.model.ExtAdmin;@Service("adminService")public class AdminServiceImpl implements AdminService{        @Resource(name = "extAdminDAO")    ExtAdminDAO extAdminDAO;        @Override    public int insert(ExtAdmin extAdmin)    {        extAdminDAO.insert(extAdmin);        return 0;    }    }

ExtAdminDAO.java

package com.lgl.admin.dao;import com.lgl.admin.model.ExtAdmin;public interface ExtAdminDAO{    /**     *     * 某些字段插入到admin表,用于注册     * @param extAdmin     * @return 返回类型说明     */    int insert(ExtAdmin extAdmin);    }

ExtAdminDAOImpl.java

package com.lgl.admin.dao;import javax.annotation.Resource;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import com.lgl.admin.model.ExtAdmin;@Repository("extAdminDAO")@Transactionalpublic class ExtAdminDAOImpl implements ExtAdminDAO{        @Resource    SqlSessionTemplate sqlSessionTemplate;        public int insert(ExtAdmin extAdmin)    {               sqlSessionTemplate.insert("com.lgl.admin.dao.mapper.ExtAdminMapper.insertadmin",                extAdmin);        return 0;    }    }
ExtAdminMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.lgl.admin.dao.mapper.ExtAdminMapper"><insert id="insertadmin" parameterType="com.lgl.admin.model.ExtAdmin">insert into admin (name, password) values (#{name,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR})</insert></mapper>