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

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

一、用myEclipse初始化Web项目

       新建一个web project:


二、创建包

controller        //控制类

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

domain  //实体类

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

         

三、是maven方式引入类库

3.1启动tomcat服务

3.2给web项目添加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>  

四、创建dao和service的基础类库

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和日志属性文件、myBatis的mapper.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.     <!-- spring和MyBatis完美整合,不需要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 myBatis的mapper.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-mvc的Servlet就是为了完成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.     <!-- Spring和mybatis的配置文件 -->    
  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的过滤器,导致页面引用的JS、images、CSS发生找不到的错误;也可以用使用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 新建控制类controller及jsp页面之间交互

    在这里使用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.                 onkeydown="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页面

   分页Model类PageBean.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>  

八、项目结果及目录






















     




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值