SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现

    xiaoxiao2021-03-25  152

    spring相关概念及SSM框架在本文当中就不多述了,直接上干货!

    一、用myEclipse初始化Web项目

          新建一个web project:

    二、创建包

    controller       //控制类

    service//服务接口 service.impl//服务实现类 dao  //data access object(接口) dao.impl  //实现类

    domain  //实体类

    mappers //mybatis的配置映射文件         util            //工具类

            

    三、是maven方式引入类库

    3.1启动tomcat服务

    3.2web项目添加maven支持(引入maven私服库)

       web项目转化为maven项目:

    3.3引入依赖

    spring

    mybatis spring mvc c3p0类库 MySQL

    .......

    3.4主要是编写pom.xml文件

    [html] view plain copy

     

    1.    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  

    2.      <modelVersion>4.0.0</modelVersion>  

    3.      <groupId>com.liuhai</groupId>  

    4.      <artifactId>eshopSSM</artifactId>  

    5.      <version>0.0.1-SNAPSHOT</version>  

    6.      <packaging>war</packaging>  

    7.      <properties>  

    8.        <log4j.version>1.2.17</log4j.version>  

    9.        <slf4j.version>1.7.7</slf4j.version>    

    10.     </properties>  

    11.     <build>  

    12.       <sourceDirectory>src</sourceDirectory>  

    13.       <resources>  

    14.         <resource>  

    15.           <directory>src</directory>  

    16.           <excludes>  

    17.             <exclude>**/*.java</exclude>  

    18.           </excludes>  

    19.         </resource>  

    20.       </resources>  

    21.       <plugins>  

    22.         <plugin>  

    23.           <artifactId>maven-compiler-plugin</artifactId>  

    24.           <version>3.1</version>  

    25.           <configuration>  

    26.             <source>1.7</source>  

    27.             <target>1.7</target>  

    28.           </configuration>  

    29.         </plugin>  

    30.         <plugin>  

    31.           <artifactId>maven-war-plugin</artifactId>  

    32.           <version>2.3</version>  

    33.           <configuration>  

    34.             <warSourceDirectory>WebRoot</warSourceDirectory>  

    35.             <failOnMissingWebXml>false</failOnMissingWebXml>  

    36.             <version>3.0</version>  

    37.           </configuration>  

    38.         </plugin>  

    39.       </plugins>  

    40.     </build>  

    41.     <dependencies>  

    42.       <!-- webmvc -->  

    43.           <dependency>  

    44.               <groupId>org.springframework</groupId>  

    45.               <artifactId>spring-webmvc</artifactId>  

    46.               <version>4.0.2.RELEASE</version>  

    47.           </dependency>  

    48.           <dependency>  

    49.               <groupId>org.springframework</groupId>  

    50.               <artifactId>spring-jdbc</artifactId>  

    51.               <version>4.0.2.RELEASE</version>  

    52.           </dependency>  

    53.           <dependency>  

    54.               <groupId>org.springframework</groupId>  

    55.               <artifactId>spring-tx</artifactId>  

    56.               <version>4.0.2.RELEASE</version>  

    57.           </dependency>  

    58.           <dependency>  

    59.               <groupId>org.springframework</groupId>  

    60.               <artifactId>spring-context-support</artifactId>  

    61.               <version>4.0.2.RELEASE</version>  

    62.           </dependency>  

    63.           <dependency>  

    64.               <groupId>org.springframework</groupId>  

    65.               <artifactId>spring-orm</artifactId>  

    66.               <version>4.0.2.RELEASE</version>  

    67.           </dependency>  

    68.           <!-- 导入Mysql数据库链接jar -->    

    69.           <dependency>  

    70.               <groupId>mysql</groupId>  

    71.               <artifactId>mysql-connector-java</artifactId>  

    72.               <version>5.1.17</version>  

    73.           </dependency>  

    74.           <!--c3p0 用来在applicationContext.xml中配置数据库   -->  

    75.           <dependency>  

    76.               <groupId>com.mchange</groupId>  

    77.               <artifactId>c3p0</artifactId>  

    78.               <version>0.9.5.2</version>  

    79.           </dependency>  

    80.           <!-- JSTL标签类 -->    

    81.           <dependency>  

    82.               <groupId>javax.servlet</groupId>  

    83.               <artifactId>jstl</artifactId>  

    84.               <version>1.2</version>  

    85.           </dependency>  

    86.           <dependency>  

    87.               <groupId>commons-io</groupId>  

    88.               <artifactId>commons-io</artifactId>  

    89.               <version>2.4</version>  

    90.           </dependency>  

    91.           <!-- mybatis核心包 -->  

    92.           <dependency>    

    93.               <groupId>org.mybatis</groupId>    

    94.               <artifactId>mybatis</artifactId>    

    95.               <version>3.1.1</version>    

    96.           </dependency>  

    97.           <!-- mybatis/spring -->     

    98.           <dependency>    

    99.               <groupId>org.mybatis</groupId>    

    100.              <artifactId>mybatis-spring</artifactId>    

    101.              <version>1.2.0</version>    

    102.          </dependency>   

    103.          <!-- 映入JSON 对象转json转换器,主要用来restful-->   

    104.          <dependency>    

    105.             <groupId>org.codehaus.jackson</groupId>    

    106.             <artifactId>jackson-mapper-asl</artifactId>    

    107.             <version>1.9.4</version>    

    108.         </dependency>    

    109.         <!-- log start -->    

    110.          <dependency>    

    111.              <groupId>log4j</groupId>    

    112.              <artifactId>log4j</artifactId>    

    113.              <version>${log4j.version}</version>    

    114.          </dependency>    

    115.          <dependency>    

    116.              <groupId>org.slf4j</groupId>    

    117.              <artifactId>slf4j-api</artifactId>    

    118.              <version>${slf4j.version}</version>    

    119.          </dependency>    

    120.          <dependency>    

    121.              <groupId>org.slf4j</groupId>    

    122.              <artifactId>slf4j-log4j12</artifactId>    

    123.              <version>${slf4j.version}</version>    

    124.          </dependency>    

    125.          <!-- log end -->  

    126.          <!-- 上传组件包begin -->    

    127.          <dependency>    

    128.              <groupId>commons-fileupload</groupId>    

    129.              <artifactId>commons-fileupload</artifactId>    

    130.              <version>1.3.1</version>    

    131.          </dependency>    

    132.          <dependency>    

    133.              <groupId>commons-io</groupId>    

    134.              <artifactId>commons-io</artifactId>    

    135.              <version>2.4</version>    

    136.          </dependency>   

    137.          <!-- 上传组件包end -->    

    138.          <!-- json解析包 -->   

    139.          <dependency>  

    140.              <groupId>net.sf.json-lib</groupId>  

    141.              <artifactId>json-lib</artifactId>  

    142.              <version>2.4</version>  

    143.          </dependency>  

    144.    </dependencies>  

    145.  </project>  

    四、创建daoservice的基础类库

    UserDao.Java如下:

    [java] view plain copy

     

    1.    package com.liuhai.eshop.dao;  

    2.      

    3.    import java.util.List;  

    4.    import java.util.Map;  

    5.      

    6.    import com.liuhai.eshop.domain.User;  

    7.    /** 

    8.     * 用户DAO接口 

    9.     * @author Administrator 

    10.    * 

    11.    */  

    12.   public interface UserDao {  

    13.       /** 

    14.        * 用户登录 

    15.        * @param user 

    16.        * @return 

    17.        */  

    18.       public User login(User user);  

    19.       /** 

    20.        * 查询所有用户 

    21.        * @return 

    22.        */  

    23.       public List<User> getAll();  

    24.       /** 

    25.        * 根据条件查询用户 

    26.        * @param user 

    27.        * @return 

    28.        */  

    29.       public User getUser(User user);  

    30.       /** 

    31.        * 删除用户 

    32.        * @param user 

    33.        * @return 

    34.        */  

    35.       public int delete(int id);  

    36.       /** 

    37.        * 更新用户 

    38.        * @param user 

    39.        * @return 

    40.        */  

    41.       public int update(User user);  

    42.       /** 

    43.        * 添加用户 

    44.        * @param user 

    45.        * @return 

    46.        */  

    47.       public int add(User user);  

    48.       /** 

    49.        * 用户查询 

    50.        * @param map 

    51.        * @return 

    52.        */  

    53.       public List<User> find(Map<String,Object> map);  

    54.       /** 

    55.        * 获取总记录数 

    56.        * @param map 

    57.        * @return 

    58.        */  

    59.       public Long getTotal(Map<String,Object> map);  

    60.       /** 

    61.        * 根据id查询用户 

    62.        * @param id 

    63.        * @return 

    64.        */  

    65.       public User getUserById(int id);  

    66.   }  

    UserService.java 用户service层接口如下:

    [java] view plain copy

     

    1.    package com.liuhai.eshop.service;  

    2.      

    3.    import java.util.List;  

    4.    import java.util.Map;  

    5.    import com.liuhai.eshop.domain.User;  

    6.      

    7.    public interface UserService {  

    8.          public List<User> getAll();  

    9.          public User getUser(User user);  

    10.         public int delete(int id);  

    11.         public int update(User user);  

    12.         public int add(User user);  

    13.         public List<User> find(Map<String,Object> map);  

    14.         public Long getTotal(Map<String,Object> map);  

    15.         public User getUserById(int id);  

    16.   }  

    UserServiceImpl.java 用户service实现层如下:

    [java] view plain copy

     

    1.    package com.liuhai.eshop.service.impl;  

    2.      

    3.    import java.util.List;  

    4.    import java.util.Map;  

    5.      

    6.    import javax.annotation.Resource;  

    7.      

    8.    import org.springframework.stereotype.Service;  

    9.      

    10.   import com.liuhai.eshop.dao.UserDao;  

    11.   import com.liuhai.eshop.domain.User;  

    12.   import com.liuhai.eshop.service.UserService;  

    13.   @Service(value="userService")  

    14.   public class UserServiceImpl implements UserService {  

    15.       private UserDao userDao;  

    16.       @Resource  

    17.       public void setUserDao(UserDao userDao) {  

    18.           this.userDao = userDao;  

    19.       }  

    20.       @Override  

    21.       public List<User> getAll() {  

    22.           return userDao.getAll();  

    23.       }  

    24.     

    25.       @Override  

    26.       public User getUser(User user) {  

    27.              return userDao.getUser(user);  

    28.       }  

    29.     

    30.       @Override  

    31.       public int delete(int id) {  

    32.           return userDao.delete(id);  

    33.       }  

    34.     

    35.       @Override  

    36.       public int update(User user) {  

    37.            return userDao.update(user);  

    38.       }  

    39.     

    40.       @Override  

    41.       public int add(User user) {  

    42.             return userDao.add(user);  

    43.       }  

    44.     

    45.       @Override  

    46.       public List<User> find(Map<String, Object> map) {  

    47.            return userDao.find(map);  

    48.       }  

    49.     

    50.       @Override  

    51.       public Long getTotal(Map<String, Object> map) {  

    52.            return userDao.getTotal(map);  

    53.       }  

    54.       public User getUserById(int id){  

    55.           return userDao.getUserById(id);  

    56.       }  

    57.   }  

    user实体类如下:

    [java] view plain copy

     

    1.    package com.liuhai.eshop.domain;  

    2.      

    3.    import java.io.Serializable;  

    4.      

    5.    /** 

    6.     * 用户实体 

    7.     * @author Administrator 

    8.     * 

    9.     */  

    10.   public class User implements Serializable{  

    11.       private static final long serialVersionUID = 1L;  

    12.       private Integer id;  

    13.       private String userName;  

    14.       private String password;  

    15.       private Integer age;  

    16.       private String trueName;  

    17.       private String email;  

    18.       private String phone;  

    19.       private String roleName;  

    20.       public Integer getId() {  

    21.           return id;  

    22.       }  

    23.       public void setId(Integer id) {  

    24.           this.id = id;  

    25.       }  

    26.     

    27.       public Integer getAge() {  

    28.           return age;  

    29.       }  

    30.       public void setAge(Integer age) {  

    31.           this.age = age;  

    32.       }  

    33.       public String getPassword() {  

    34.           return password;  

    35.       }  

    36.       public void setPassword(String password) {  

    37.           this.password = password;  

    38.       }  

    39.       public String getUserName() {  

    40.           return userName;  

    41.       }  

    42.       public void setUserName(String userName) {  

    43.           this.userName = userName;  

    44.       }  

    45.       public String getTrueName() {  

    46.           return trueName;  

    47.       }  

    48.       public void setTrueName(String trueName) {  

    49.           this.trueName = trueName;  

    50.       }  

    51.       public String getEmail() {  

    52.           return email;  

    53.       }  

    54.       public void setEmail(String email) {  

    55.           this.email = email;  

    56.       }  

    57.       public String getPhone() {  

    58.           return phone;  

    59.       }  

    60.       public void setPhone(String phone) {  

    61.           this.phone = phone;  

    62.       }  

    63.       public String getRoleName() {  

    64.           return roleName;  

    65.       }  

    66.   <h1><a name="t8"></a>   public void setRoleName(String roleName) {</h1>     this.roleName = roleName;  

    67.       }  

    68.   }  

    五、配置spring配置文件、jdbc和日志属性文件、myBatismapper.xml文件

        5.1  spring配置文件applicationContext.xml如下:

    [html] view plain copy

     

    1.    <?xml version="1.0" encoding="UTF-8"?>  

    2.    <beans xmlns="http://www.springframework.org/schema/beans"  

    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    4.        xmlns:aop="http://www.springframework.org/schema/aop"  

    5.        xmlns:context="http://www.springframework.org/schema/context"  

    6.        xmlns:tx="http://www.springframework.org/schema/tx"  

    7.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  

    8.            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  

    9.            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd  

    10.           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  

    11.       <!-- 属性配置文件 -->  

    12.       <context:property-placeholder location="classpath:jdbc.properties"/>  

    13.       <!-- 组件扫描,指定spring管理哪些bean -->  

    14.       <context:component-scan base-package="com.liuhai.eshop.dao.impl,com.liuhai.eshop.service.impl"></context:component-scan>  

    15.         

    16.       <!-- 注解驱动 -->  

    17.       <tx:annotation-driven/>  

    18.       <!-- 创建数据源 -->  

    19.       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  

    20.           <property name="driverClass" value="${jdbc.driverclass}"></property>  

    21.           <property name="jdbcUrl" value="${jdbc.url}"></property>  

    22.           <property name="user" value="${jdbc.username}"></property>  

    23.           <property name="password" value="${jdbc.password}"></property>  

    24.           <property name="initialPoolSize" value="${c3p0.pool.size.init}"></property>  

    25.           <property name="minPoolSize" value="${c3p0.pool.size.min}"></property>  

    26.           <property name="maxPoolSize" value="${c3p0.pool.size.max}"></property>  

    27.           <property name="acquireIncrement" value="${c3p0.pool.size.increment}"></property>  

    28.       </bean>  

    29.       <!-- springMyBatis完美整合,不需要mybatis的配置映射文件 -->    

    30.       <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    

    31.           <property name="dataSource" ref="dataSource" />    

    32.           <!-- 自动扫描mapping.xml文件 -->    

    33.           <property name="mapperLocations" value="classpath:com/liuhai/eshop/mappers/*.xml"></property>    

    34.       </bean>   

    35.       <!-- DAO接口所在包名,Spring会自动查找其下的类 -->    

    36.       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

    37.           <property name="basePackage" value="com.liuhai.eshop.dao"></property>  

    38.           <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  

    39.       </bean>  

    40.       <!-- 事务管理器,service层面上实现事务管理的 -->  

    41.       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  

    42.           <property name="dataSource" ref="dataSource"></property>  

    43.       </bean>  

    44.   </beans>  

    5.2 jdbc属性文件jdbc.properties如下:

    [html] view plain copy

     

    1.    jdbc.driverclass=com.mysql.jdbc.Driver  

    2.    jdbc.url=jdbc\:mysql\://localhost\:3306/eshop  

    3.    jdbc.username=root  

    4.    jdbc.password=123456  

    5.    c3p0.pool.size.max=10  

    6.    c3p0.pool.size.min=2  

    7.    c3p0.pool.size.init=3  

    8.    c3p0.pool.size.increment=2  

    9.      

    10.   hibernate.dialect=org.hibernate.dialect.MySQL5Dialect  

    11.   hibernate.show_sql=true  

    12.   hibernate.hbm2ddl.auto=none  

    5.3 日志属性文件log4j.properties如下:

    [html] view plain copy

     

    1.    log4j.rootLogger=INFO,Console,File    

    2.    #定义日志输出目的地为控制台    

    3.    log4j.appender.Console=org.apache.log4j.ConsoleAppender    

    4.    log4j.appender.Console.Target=System.out    

    5.    #可以灵活地指定日志输出格式,下面一行是指定具体的格式    

    6.    log4j.appender.Console.layout = org.apache.log4j.PatternLayout    

    7.    log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n    

    8.      

    9.    log4j.logger.java.sql.ResultSet=INFO    

    10.   log4j.logger.org.apache=INFO    

    11.   log4j.logger.java.sql.Connection=DEBUG    

    12.   log4j.logger.java.sql.Statement=DEBUG    

    13.   log4j.logger.java.sql.PreparedStatement=DEBUG    

    14.       

    15.   #文件大小到达指定尺寸的时候产生一个新的文件    

    16.   log4j.appender.File = org.apache.log4j.RollingFileAppender    

    17.   #指定输出目录    

    18.   log4j.appender.File.File = logs/ssm.log    

    19.   #定义文件最大大小    

    20.   log4j.appender.File.MaxFileSize = 10MB    

    21.   输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志    

    22.   log4j.appender.File.Threshold =INFO    

    23.   log4j.appender.File.layout = org.apache.log4j.PatternLayout    

    24.   log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n   

    5.4 myBatismapper.xml文件(UserMapper.xml

    [html] view plain copy

     

    1.    <?xml version="1.0" encoding="UTF-8"?>  

    2.    <!DOCTYPE mapper  

    3.    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  

    4.    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  

    5.    <mapper namespace="com.liuhai.eshop.dao.UserDao">  

    6.         <!-- 定义缓存  一般是一级缓存,如果用同一个sqlsession 那么相同查询直接会从缓存中查找 -->  

    7.        <cache size="1024" flushInterval="60000" eviction="LRU" readOnly="false"></cache>  

    8.        <!-- 增加 -->  

    9.        <insert id="add" parameterType="com.liuhai.eshop.domain.User">  

    10.           insert into users values(null,#{userName},#{password},#{age},#{trueName},#{email},#{phone},#{roleName})  

    11.       </insert>  

    12.       <resultMap id="userResultMap" type="com.liuhai.eshop.domain.User" >  

    13.           <id property="id" column="id"/>  

    14.           <result property="userName" column="userName"/>  

    15.           <result property="password" column="password"/>  

    16.           <result property="age" column="age"/>  

    17.           <result property="trueName" column="trueName" />  

    18.           <result property="email" column="email" />  

    19.           <result property="phone" column="phone" />  

    20.           <result property="roleName" column="roleName" />  

    21.       </resultMap>  

    22.       <select id="getUserById" parameterType="Integer" resultMap="userResultMap">  

    23.           select * from users where id=#{id}  

    24.       </select>  

    25.       <select id="find" parameterType="com.liuhai.eshop.domain.User" resultMap="userResultMap">  

    26.           select * from users   

    27.           <where>  

    28.               <if test="userName!=null and userName!='' ">  

    29.                   and userName like #{userName}  

    30.               </if>  

    31.           </where>  

    32.           <if test="start!=null and size!=null">  

    33.               limit #{start},#{size}  

    34.           </if>  

    35.       </select>  

    36.       <select id="getTotal" parameterType="Map" resultType="Long">  

    37.           select count(*) from users  

    38.           <where>  

    39.               <if test="userName!=null and userName!='' ">  

    40.                   and userName like #{userName}  

    41.               </if>  

    42.           </where>  

    43.       </select>  

    44.       <!-- 用户删除 -->  

    45.       <delete id="delete" parameterType="Integer">  

    46.           delete from users where id = #{id}  

    47.       </delete>  

    48.       <!-- 用户修改 -->  

    49.       <update id="update" parameterType="com.liuhai.eshop.domain.User">  

    50.           update users  

    51.           <set>  

    52.               <if test="age != null and age != ''">age = #{age},</if>  

    53.               <if test="userName != null and userName != ''">userName = #{userName},</if>  

    54.               <if test="password != null and password != ''">password = #{password},</if>  

    55.               <if test="trueName != null and trueName != ''">trueName = #{trueName},</if>  

    56.               <if test="email != null and email != ''">email = #{email},</if>  

    57.               <if test="phone != null and phone != ''">phone = #{phone},</if>  

    58.               <if test="roleName != null and roleName != ''">roleName = #{roleName},</if>  

    59.           </set>  

    60.           where id = #{id}  

    61.       </update>  

    62.   </mapper>  

    六、创建测试类,测试数据源是否通了

        以上spring框架及spring+mybatis配置基本完成,再就是创建测试类测试数据源是否通

     首先创建一个mysql库的,再建立users表,创建测试类TestSpring.java如下:

       

    [java] view plain copy

     

    1.    package com.liuhai.eshop;  

    2.      

    3.    import org.junit.Test;  

    4.    import org.springframework.context.ApplicationContext;  

    5.    import org.springframework.context.support.ClassPathXmlApplicationContext;  

    6.      

    7.    import com.liuhai.eshop.domain.User;  

    8.    import com.liuhai.eshop.service.UserService;  

    9.      

    10.   public class TestSpring {  

    11.       @Test  

    12.       public void TestUserService() throws Exception{  

    13.           @SuppressWarnings("resource")  

    14.           ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");  

    15.           UserService us=(UserService) ac.getBean("userService");  

    16.           User user=new User();  

    17.           user.setAge(1);  

    18.           user.setUserName("zhangsan");  

    19.           user.setPassword("123456");  

    20.           user.setTrueName("张三");  

    21.           us.add(user);  

    22.       }  

    23.   }  

    最后查询users表中是否有新插入的数据。

    七、整合SpringMVC

    7.1、配置spring-mvc.xml

    配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个

    [html] view plain copy

     

    1.    <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>  

    2.    <beans xmlns="http://www.springframework.org/schema/beans"  

    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    4.        xmlns:context="http://www.springframework.org/schema/context"  

    5.        xmlns:mvc="http://www.springframework.org/schema/mvc"  

    6.        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd  

    7.            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  

    8.            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">  

    9.          

    10.       <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->    

    11.       <context:component-scan base-package="com.liuhai.eshop.controller"></context:component-scan>  

    12.       <!--避免IE执行AJAX时,返回JSON出现下载文件 -->    

    13.       <bean id="mappingJacksonHttpMessageConverter"    

    14.           class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">    

    15.           <property name="supportedMediaTypes">    

    16.               <list>    

    17.                   <value>text/html;charset=UTF-8</value>    

    18.               </list>    

    19.           </property>    

    20.       </bean>    

    21.       <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->   

    22.       <!-- 详细介绍:http://www.ibm.com/developerworks/cn/web/wa-restful/ -->   

    23.       <bean    

    24.           class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">    

    25.           <property name="messageConverters">    

    26.               <list>    

    27.                   <ref bean="mappingJacksonHttpMessageConverter" /> <!-- 对象转化为JSON转换器 -->    

    28.               </list>    

    29.           </property>    

    30.       </bean>    

    31.       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

    32.           <property name="prefix" value="/jsps/"></property>  

    33.           <property name="suffix" value=".jsp"></property>  

    34.       </bean>  

    35.       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  

    36.           <!-- 默认编码 -->   

    37.           <property name="defaultEncoding" value="utf-8"></property>  

    38.           <!-- 文件大小最大值 -->    

    39.           <property name="maxUploadSize" value="10485760000"></property>  

    40.           <!-- 内存中的最大值 -->    

    41.           <property name="maxInMemorySize" value="40960"></property>  

    42.       </bean>  

    43.   </beans></span>  

    7.2、配置web.xml文件

            这里面对applicationContext.xml的引入以及配置的spring-mvcServlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。

    [html] view plain copy

     

    1.    <?xml version="1.0" encoding="UTF-8"?>  

    2.    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    

    3.        xmlns="http://java.sun.com/xml/ns/javaee"    

    4.        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    

    5.        version="3.0">    

    6.          

    7.        <display-name>web 测试页面</display-name>  

    8.        <!-- Springmybatis的配置文件 -->    

    9.        <context-param>  

    10.           <param-name>contextConfigLocation</param-name>  

    11.           <param-value>classpath:applicationContext.xml</param-value>  

    12.       </context-param>  

    13.       <!-- 编码过滤器 -->  

    14.       <filter>  

    15.           <filter-name>encodingFilter</filter-name>  

    16.           <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  

    17.           <async-supported>true</async-supported>  

    18.           <init-param>  

    19.               <param-name>encoding</param-name>  

    20.               <param-value>UTF-8</param-value>  

    21.           </init-param>  

    22.       </filter>  

    23.       <filter-mapping>  

    24.           <filter-name>encodingFilter</filter-name>  

    25.           <url-pattern>/*</url-pattern>  

    26.       </filter-mapping>  

    27.       <!-- Spring监听器:启动Web容器时,自动装配ApplicationContext的配置信息,即上面的:contextConfigLocation-->   

    28.       <listener>  

    29.           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  

    30.       </listener>  

    31.       <!-- 防止Spring内存溢出监听器 -->   

    32.       <listener>  

    33.           <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  

    34.       </listener>  

    35.       <!-- Spring MVC servlet -->    

    36.       <servlet>  

    37.           <servlet-name>springMVC</servlet-name>  

    38.           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

    39.           <init-param>  

    40.               <param-name>contextConfigLocation</param-name>  

    41.               <param-value>classpath:spring-mvc.xml</param-value>  

    42.           </init-param>  

    43.           <load-on-startup>1</load-on-startup>  

    44.           <async-supported>true</async-supported>  

    45.       </servlet>  

    46.       <servlet-mapping>  

    47.           <servlet-name>springMVC</servlet-name>  

    48.           <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 也可以是/-->    

    49.           <url-pattern>*.do</url-pattern>  

    50.       </servlet-mapping>  

    51.       <!-- 解决由于采用spring的过滤器,导致页面引用的JSimagesCSS发生找不到的错误;也可以用使用spring mvc  <mvc:resources /> 注解 用来处理静态文件 -->  

    52.       <servlet-mapping>  

    53.           <servlet-name>default</servlet-name>  

    54.           <url-pattern>*.css</url-pattern>  

    55.       </servlet-mapping>  

    56.       <servlet-mapping>  

    57.           <servlet-name>default</servlet-name>  

    58.           <url-pattern>*.gif</url-pattern>  

    59.       </servlet-mapping>  

    60.       <servlet-mapping>  

    61.           <servlet-name>default</servlet-name>  

    62.           <url-pattern>*.png</url-pattern>  

    63.       </servlet-mapping>  

    64.       <servlet-mapping>  

    65.           <servlet-name>default</servlet-name>  

    66.           <url-pattern>*.jpg</url-pattern>  

    67.       </servlet-mapping>  

    68.       <servlet-mapping>  

    69.           <servlet-name>default</servlet-name>  

    70.           <url-pattern>*.js</url-pattern>  

    71.       </servlet-mapping>  

    72.       <welcome-file-list>  

    73.           <welcome-file>/index.jsp</welcome-file>    

    74.       </welcome-file-list>  

    75.   </web-app>  

    7.3 新建控制类controllerjsp页面之间交互

        在这里使用jsp页面引入easyui集成并实现增删改查功能

    userManage.jsp如下:

    [html] view plain copy

     

    1.    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  

    2.    <%  

    3.    String path = request.getContextPath();  

    4.    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

    5.    %>  

    6.    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

    7.    <html>  

    8.      <head>  

    9.        <base href="<%=basePath%>">  

    10.         

    11.       <title>My JSP 'userManage.jsp' starting page</title>  

    12.         

    13.       <meta http-equiv="pragma" content="no-cache">  

    14.       <meta http-equiv="cache-control" content="no-cache">  

    15.       <meta http-equiv="expires" content="0">      

    16.       <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

    17.       <meta http-equiv="description" content="This is my page">  

    18.       <link rel="stylesheet" type="text/css" href="jquery-easyui-1.5.1/themes/default/easyui.css">  

    19.       <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/jquery-easyui-1.5.1/themes/icon.css">  

    20.       <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/jquery.min.js"></script>  

    21.       <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>  

    22.       <script type="text/javascript" src="${pageContext.request.contextPath}/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>  

    23.       <script type="text/javascript">  

    24.           var url;  

    25.           function openUserAddDialog() {  

    26.               $("#dlg").dialog("open").dialog("setTitle", "添加用户信息");  

    27.               url = "${pageContext.request.contextPath}/user/save.do";  

    28.           }  

    29.           function saveUser() {  

    30.               $("#fm").form("submit", {  

    31.                   url : url,  

    32.                   onSubmit : function() {  

    33.                       if ($("#roleName").combobox("getValue") == "") {  

    34.                           $.messager.alert("系统提示", "请选择用户角色!");  

    35.                           return false;  

    36.                       }  

    37.                       return $(this).form("validate");  

    38.                   },  

    39.                   success : function(result) {  

    40.                       var result = eval('(' + result + ')');  

    41.                       if (result.success) {  

    42.                           $.messager.alert("系统提示", "保存成功!");  

    43.                           resetValue();  

    44.                           $("#dlg").dialog("close");  

    45.                           $("#dg").datagrid("reload");  

    46.                       } else {  

    47.                           $.messager.alert("系统提示", "保存失败!");  

    48.                           return;  

    49.                       }  

    50.                   }  

    51.               });  

    52.           }  

    53.           function searchUser() {  

    54.               $("#dg").datagrid('load', {  

    55.                   "userName" : $("#s_userName").val()  

    56.               });  

    57.           }  

    58.           function resetValue() {  

    59.               $("#userName").val("");  

    60.               $("#password").val("");  

    61.               $("#trueName").val("");  

    62.               $("#email").val("");  

    63.               $("#phone").val("");  

    64.               $("#roleName").combobox("setValue", "");  

    65.           }  

    66.           function deleteUser() {  

    67.               var selectedRows = $("#dg").datagrid("getSelections");  

    68.               if (selectedRows.length == 0) {  

    69.                   $.messager.alert("系统提示", "请选择要删除的数据!");  

    70.                   return;  

    71.               }  

    72.               var strIds = [];  

    73.               for ( var i = 0; i < selectedRows.length; i++) {  

    74.                   strIds.push(selectedRows[i].id);  

    75.               }  

    76.               var ids = strIds.join(",");  

    77.               $.messager.confirm("系统提示", "您确定要删除这<font color=red>"  

    78.                       + selectedRows.length + "</font>条数据吗?", function(r) {  

    79.                   if (r) {  

    80.                       $.post("${pageContext.request.contextPath}/user/delete.do", {  

    81.                           ids : ids  

    82.                       }, function(result) {  

    83.                           if (result.success) {  

    84.                               $.messager.alert("系统提示", "数据已成功删除!");  

    85.                               $("#dg").datagrid("reload");  

    86.                           } else {  

    87.                               $.messager.alert("系统提示", "数据删除失败,请联系系统管理员!");  

    88.                           }  

    89.                       }, "json");  

    90.                   }  

    91.               });  

    92.           }  

    93.           function openUserModifyDialog() {  

    94.               var selectedRows = $("#dg").datagrid("getSelections");  

    95.               if (selectedRows.length != 1) {  

    96.                   $.messager.alert("系统提示", "请选择一条要编辑的数据!");  

    97.                   return;  

    98.               }  

    99.               var row = selectedRows[0];  

    100.              $("#dlg").dialog("open").dialog("setTitle", "编辑用户信息");  

    101.              $("#fm").form("load", row);  

    102.              url = "${pageContext.request.contextPath}/user/save.do?id=" + row.id;  

    103.          }  

    104.      </script>  

    105.    </head>  

    106.      

    107.    <body style="margin: 1px">  

    108.      <table id="dg" title="用户管理" class="easyui-datagrid" fitColumns="true"  

    109.          pagination="true" rownumbers="true"  

    110.          url="${pageContext.request.contextPath}/user/list.do" fit="true"  

    111.          toolbar="#tb">  

    112.          <thead>  

    113.              <tr>  

    114.                  <th field="cb" checkbox="true" align="center"></th>  

    115.                  <th field="id" width="50" align="center">编号</th>  

    116.                  <th field="userName" width="50" align="center">用户名</th>  

    117.                  <th field="password" width="50" align="center">密码</th>  

    118.                  <th field="trueName" width="50" align="center">真实姓名</th>  

    119.                  <th field="email" width="50" align="center">邮件</th>  

    120.                  <th field="phone" width="50" align="center">联系电话</th>  

    121.                  <th field="roleName" width="50" align="center">角色</th>  

    122.              </tr>  

    123.          </thead>  

    124.      </table>  

    125.      <div id="tb">  

    126.          <a href="javascript:openUserAddDialog()" class="easyui-linkbutton"  

    127.              iconCls="icon-add" plain="true">添加</a> <a  

    128.              href="javascript:openUserModifyDialog()" class="easyui-linkbutton"  

    129.              iconCls="icon-edit" plain="true">修改</a> <a  

    130.              href="javascript:deleteUser()" class="easyui-linkbutton"  

    131.              iconCls="icon-remove" plain="true">删除</a>  

    132.          <div>  

    133.               用户名: <input type="text" id="s_userName" size="20"  

    134.                  οnkeydοwn="if(event.keyCode == 13)searchUser()" /> <a  

    135.                  href="javascript:searchUser()" class="easyui-linkbutton"  

    136.                  iconCls="icon-search" plain="true">查询</a>  

    137.          </div>  

    138.          <div id="dlg-buttons">  

    139.              <a href="javascript:saveUser()" class="easyui-linkbutton"  

    140.                  iconCls="icon-ok">保存</a> <a href="javascript:closeUserDialog()"  

    141.                  class="easyui-linkbutton" iconCls="icon-cancel">关闭</a>  

    142.          </div>  

    143.          <div id="dlg" class="easyui-dialog"  

    144.              style="width: 730px;height:280px;padding:10px 10px;" closed="true"  

    145.              buttons="#dlg-buttons">  

    146.              <form method="post" id="fm">  

    147.                  <table cellspacing="8px;">  

    148.                      <tr>  

    149.                          <td>用户名:</td>  

    150.                          <td><input type="text" id="userName" name="userName"  

    151.                              class="easyui-validatebox" required="true" /> <span  

    152.                              style="color: red">*</span>  

    153.                          </td>  

    154.                          <td>  </td>  

    155.                          <td>密码:</td>  

    156.                          <td><input type="password" id="password" name="password"  

    157.                              class="easyui-validatebox" required="true" /> <span  

    158.                              style="color: red">*</span>  

    159.                          </td>  

    160.                      </tr>  

    161.                      <tr>  

    162.                          <td>真实姓名:</td>  

    163.                          <td><input type="text" id="trueName" name="trueName"  

    164.                              class="easyui-validatebox" required="true" /> <span  

    165.                              style="color: red">*</span>  

    166.                          </td>  

    167.                          <td>  </td>  

    168.                          <td>邮箱:</td>  

    169.                          <td><input type="text" id="email" name="email"  

    170.                              validType="email" class="easyui-validatebox" required="true" /> <span  

    171.                              style="color: red">*</span>  

    172.                          </td>  

    173.                      </tr>  

    174.                      <tr>  

    175.                          <td>联系电话:</td>  

    176.                          <td><input type="text" id="phone" name="phone"  

    177.                              class="easyui-validatebox" required="true" /> <span  

    178.                              style="color: red">*</span>  

    179.                          </td>  

    180.                          <td>  </td>  

    181.                          <td>用户角色:</td>  

    182.                          <td><select name="roleName" class="easyui-combobox"  

    183.                              id="roleName" style="width: 154px;" editable="false"  

    184.                              panelHeight="auto">  

    185.                                  <option value="">请选择角色</option>  

    186.                                  <option value="系统管理员">系统管理员</option>  

    187.                                  <option value="销售主管">销售主管</option>  

    188.                                  <option value="客户经理">客户经理</option>  

    189.                                  <option value="高管">高管</option>  

    190.                          </select>  <span style="color: red">*</span>  

    191.                          </td>  

    192.                      </tr>  

    193.                  </table>  

    194.              </form>  

    195.          </div>  

    196.      </div>  

    197.    </body>  

    198.  </html>  

    UserController.java

    [java] view plain copy

     

    1.    package com.liuhai.eshop.controller;  

    2.      

    3.    import java.io.File;  

    4.    import java.io.IOException;  

    5.    import java.util.HashMap;  

    6.    import java.util.List;  

    7.    import java.util.Map;  

    8.      

    9.    import javax.annotation.Resource;  

    10.   import javax.servlet.http.HttpServletRequest;  

    11.   import javax.servlet.http.HttpServletResponse;  

    12.     

    13.   import net.sf.json.JSONArray;  

    14.   import net.sf.json.JSONObject;  

    15.     

    16.   import org.apache.commons.io.FileUtils;  

    17.   import org.slf4j.Logger;  

    18.   import org.slf4j.LoggerFactory;  

    19.   import org.springframework.http.HttpStatus;  

    20.   import org.springframework.http.ResponseEntity;  

    21.   import org.springframework.stereotype.Controller;  

    22.   import org.springframework.ui.Model;  

    23.   import org.springframework.web.bind.annotation.RequestMapping;  

    24.   import org.springframework.web.bind.annotation.RequestMethod;  

    25.   import org.springframework.web.bind.annotation.RequestParam;  

    26.   import org.springframework.web.bind.annotation.ResponseBody;  

    27.   import org.springframework.web.multipart.MultipartFile;  

    28.     

    29.   import com.liuhai.eshop.domain.User;  

    30.   import com.liuhai.eshop.service.UserService;  

    31.   import com.liuhai.eshop.util.PageBean;  

    32.   import com.liuhai.eshop.util.ResponseUtil;  

    33.   import com.liuhai.eshop.util.StringUtil;  

    34.     

    35.   @Controller  

    36.   @RequestMapping("/user")  

    37.   public class UserController {  

    38.       private static Logger log=LoggerFactory.getLogger(UserController.class);  

    39.       @Resource  

    40.       private UserService userService;  

    41.         

    42.       @RequestMapping("/showUser.do")  

    43.       public String toIndex(HttpServletRequest request,Model model){  

    44.           System.out.println("liuhaitest");  

    45.           return "showUser";  

    46.       }  

    47.       // /user/test.do?id=1  

    48.       @RequestMapping(value="/test.do",method=RequestMethod.GET)    

    49.       public String test(HttpServletRequest request,Model model){    

    50.           int userId = Integer.parseInt(request.getParameter("id"));    

    51.           System.out.println("userId:"+userId);  

    52.           User user=null;  

    53.           if (userId==1) {  

    54.                user = new User();    

    55.                user.setAge(11);  

    56.                user.setId(1);  

    57.                user.setPassword("123");  

    58.                user.setUserName("javen");  

    59.           }  

    60.           log.debug(user.toString());  

    61.           model.addAttribute("user", user);    

    62.           return "index";    

    63.       }    

    64.       // /user/showUser.do?id=1  

    65.       @RequestMapping(value="/showUser.do",method=RequestMethod.GET)    

    66.       public String toindex(HttpServletRequest request,Model model){    

    67.           int userId = Integer.parseInt(request.getParameter("id"));    

    68.           System.out.println("userId:"+userId);  

    69.           User user = this.userService.getUserById(userId);    

    70.           log.debug(user.toString());  

    71.           model.addAttribute("user", user);    

    72.           return "showUser";    

    73.       }    

    74.         

    75.    // /user/showUser2.do?id=1  

    76.       @RequestMapping(value="/showUser2.do",method=RequestMethod.GET)    

    77.       public String toIndex2(@RequestParam("id") String id,Model model){    

    78.           int userId = Integer.parseInt(id);    

    79.           System.out.println("userId:"+userId);  

    80.           User user = this.userService.getUserById(userId);    

    81.           log.debug(user.toString());  

    82.           model.addAttribute("user", user);    

    83.           return "showUser";    

    84.       }    

    85.     

    86.       // /user/jsontype.do?id=1  

    87.       @RequestMapping(value="/jsontype.do",method=RequestMethod.GET)    

    88.       public @ResponseBody User getUserInJson(@RequestParam("id") String id,Map<String, Object> model){    

    89.           int userId = Integer.parseInt(id);    

    90.           System.out.println("userId:"+userId);  

    91.           User user = this.userService.getUserById(userId);    

    92.           log.info(user.toString());  

    93.           return user;    

    94.       }    

    95.       // /user/jsontype2.do?id=1  

    96.       @RequestMapping(value="/jsontype2.do",method=RequestMethod.GET)    

    97.       public ResponseEntity<User>  getUserInJson2(@RequestParam("id") String id,Map<String, Object> model){    

    98.           int userId = Integer.parseInt(id);    

    99.           System.out.println("userId:"+userId);  

    100.          User user = this.userService.getUserById(userId);    

    101.          log.info(user.toString());  

    102.          return new ResponseEntity<User>(user,HttpStatus.OK);    

    103.      }   

    104.        

    105.      //文件上传页面  

    106.      @RequestMapping(value="/upload.do")  

    107.      public String showUploadPage(){  

    108.          return "file";  

    109.      }  

    110.      //文件上传  

    111.      @RequestMapping(value="/doUpload.do",method=RequestMethod.POST)  

    112.      public String doUploadFile(@RequestParam("file")MultipartFile file) throws IOException{  

    113.          if (!file.isEmpty()) {  

    114.              log.info("Process file:{}",file.getOriginalFilename());  

    115.          }  

    116.          FileUtils.copyInputStreamToFile(file.getInputStream(), new File("E:\\",System.currentTimeMillis()+file.getOriginalFilename()));  

    117.          return "succes";  

    118.      }  

    119.      /** 

    120.       * 用户管理页面 

    121.       * @return 

    122.       */  

    123.      @RequestMapping(value="/userManage.do")  

    124.      public String userManagePage(){  

    125.          return "userManage";  

    126.      }  

    127.      /** 

    128.       * 添加或者修改 

    129.       * @param user 

    130.       * @param res 

    131.       * @return 

    132.       * @throws Exception 

    133.       */  

    134.      @RequestMapping("/save.do")  

    135.      public String save(User user,HttpServletResponse res) throws Exception{  

    136.          //操作记录条数,初始化为0  

    137.          int resultTotal = 0;  

    138.          if (user.getId() == null) {  

    139.              resultTotal = userService.add(user);  

    140.          }else{  

    141.              resultTotal = userService.update(user);  

    142.          }  

    143.          JSONObject jsonObject = new JSONObject();  

    144.          if(resultTotal > 0){   //说明修改或添加成功  

    145.              jsonObject.put("success", true);  

    146.          }else{  

    147.              jsonObject.put("success", false);  

    148.          }  

    149.          ResponseUtil.write(res, jsonObject);  

    150.          return null;  

    151.      }  

    152.      /** 

    153.       * 用户分页查询 

    154.       * @param page 

    155.       * @param rows 

    156.       * @param s_user 

    157.       * @param res 

    158.       * @return 

    159.       * @throws Exception 

    160.       */  

    161.      @RequestMapping("/list.do")  

    162.      public String list(@RequestParam(value="page",required=false) String page,@RequestParam(value="rows",required=false) String rows,User s_user,HttpServletResponse res) throws Exception{  

    163.          PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows));  

    164.          Map<String,Object> map=new HashMap<String,Object>();  

    165.          map.put("userName", StringUtil.formatLike(s_user.getUserName()));  

    166.          map.put("start", pageBean.getStart());  

    167.          map.put("size", pageBean.getPageSize());  

    168.          List<User> userList=userService.find(map);  

    169.          Long total=userService.getTotal(map);  

    170.          JSONObject result=new JSONObject();  

    171.          JSONArray jsonArray=JSONArray.fromObject(userList);  

    172.          result.put("rows", jsonArray);  

    173.          result.put("total", total);  

    174.          ResponseUtil.write(res, result);  

    175.          return null;  

    176.      }  

    177.      /** 

    178.       * 删除用户 

    179.       * @param ids 

    180.       * @param res 

    181.       * @return 

    182.       * @throws Exception 

    183.       */  

    184.      @RequestMapping("/delete.do")  

    185.      public String delete(@RequestParam(value="ids") String ids,HttpServletResponse res) throws Exception{  

    186.          String[] idStr = ids.split(",");  

    187.          JSONObject jsonObject = new JSONObject();  

    188.          for (String id : idStr) {  

    189.              userService.delete(Integer.parseInt(id));  

    190.          }  

    191.          jsonObject.put("success", true);  

    192.          ResponseUtil.write(res, jsonObject);  

    193.          return null;  

    194.      }  

    195.  }  

    7.4其它工具类及jsp页面

       分页ModelPageBean.java

    [java] view plain copy

     

    1.    package com.liuhai.eshop.util;  

    2.    /** 

    3.     * 分页Model 

    4.     * @author Administrator 

    5.     * 

    6.     */  

    7.    public class PageBean {  

    8.        private int page; // 第几页  

    9.        private int pageSize; // 每页记录数  

    10.       private int start;  // 起始页  

    11.       public PageBean(int page, int pageSize) {  

    12.           super();  

    13.           this.page = page;  

    14.           this.pageSize = pageSize;  

    15.       }  

    16.       public int getPage() {  

    17.           return page;  

    18.       }  

    19.       public void setPage(int page) {  

    20.           this.page = page;  

    21.       }  

    22.       public int getPageSize() {  

    23.           return pageSize;  

    24.       }  

    25.       public void setPageSize(int pageSize) {  

    26.           this.pageSize = pageSize;  

    27.       }  

    28.       public int getStart() {  

    29.           return (page-1)*pageSize;  

    30.       }  

    31.   }  

      用于返回json数据ResponseUtil.java

    [java] view plain copy

     

    1.    package com.liuhai.eshop.util;  

    2.      

    3.    import java.io.PrintWriter;  

    4.      

    5.    import javax.servlet.http.HttpServletResponse;  

    6.    /*** 

    7.     * 主要用于返回json数据 

    8.     * @author Administrator 

    9.     */  

    10.   public class ResponseUtil {  

    11.       public static void write(HttpServletResponse response,Object object)throws Exception{  

    12.           response.setContentType("text/html;charset=utf-8");  

    13.           PrintWriter out=response.getWriter();  

    14.           out.println(object);  

    15.           out.flush();  

    16.           out.close();  

    17.       }  

    18.   }  

    字符串工具类StringUtil.java如下:

    [java] view plain copy

     

    1.    package com.liuhai.eshop.util;  

    2.    /*** 

    3.     * 字符串工具类 

    4.     * @author Administrator 

    5.     * 

    6.     */  

    7.    public class StringUtil {  

    8.         /** 

    9.         * 判断是否是空 

    10.        * @param str 

    11.        * @return 

    12.        */  

    13.       public static boolean isEmpty(String str){  

    14.           if(str==null||"".equals(str.trim())){  

    15.               return true;  

    16.           }else{  

    17.               return false;  

    18.           }  

    19.       }  

    20.         

    21.       /** 

    22.        * 判断是否不是空 

    23.        * @param str 

    24.        * @return 

    25.        */  

    26.       public static boolean isNotEmpty(String str){  

    27.           if((str!=null)&&!"".equals(str.trim())){  

    28.               return true;  

    29.           }else{  

    30.               return false;  

    31.           }  

    32.       }  

    33.         

    34.       /** 

    35.        * 格式化模糊查询 

    36.        * @param str 

    37.        * @return 

    38.        */  

    39.       public static String formatLike(String str){  

    40.           if(isNotEmpty(str)){  

    41.               return "%"+str+"%";  

    42.           }else{  

    43.               return null;  

    44.           }  

    45.       }  

    46.   }  

    上传文件file.jsp页面

    [html] view plain copy

     

    1.    <%@ page language="java" contentType="text/html; charset=utf-8"  

    2.        pageEncoding="utf-8"%>  

    3.    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

    4.    <html>  

    5.    <head>  

    6.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  

    7.    <title>Insert title here</title>  

    8.    </head>  

    9.    <body>  

    10.       <h1>上传文件</h1>  

    11.       <form method="post" action="../user/doUpload.do" enctype="multipart/form-data">  

    12.           <input type="file" name="file"/>  

    13.           <input type="submit" value="上传文件"/>  

    14.             

    15.       </form>  

    16.   </body>  

    17.   </html>  

    八、项目结果及目录

    转自http://blog.csdn.net/liuhaiabc/article/details/53899519

    转载请注明原文地址: https://ju.6miu.com/read-2698.html

    最新回复(0)