天天看点

maven实现ssm框架的整合DEMO

  • springmvc /
  • mybatis /
  • maven /
  • ssm整合

1.首先是建立一个Maven-project,具体操作请参考我的另一篇文章 点击这里  2. 然后导入maven依赖,这里将我的依赖列出如下 [html] view plain copy

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>org.bb</groupId>  
  5.     <artifactId>ssm</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <name>ssm Maven Webapp</name>  
  9.     <url>http://maven.apache.org</url>  
  10.     <dependencies>  
  11.         <!-- 单元测试 -->  
  12.         <dependency>  
  13.             <groupId>junit</groupId>  
  14.             <artifactId>junit</artifactId>  
  15.             <version>4.10</version>  
  16.             <scope>test</scope>  
  17.         </dependency>  
  18.         <!-- Spring 相关依赖 -->  
  19.         <dependency>  
  20.             <groupId>org.springframework</groupId>  
  21.             <artifactId>spring-context</artifactId>  
  22.             <version>4.1.3.RELEASE</version>  
  23.         </dependency>  
  24.         <dependency>  
  25.             <groupId>org.springframework</groupId>  
  26.             <artifactId>spring-beans</artifactId>  
  27.             <version>4.1.3.RELEASE</version>  
  28.         </dependency>  
  29.         <dependency>  
  30.             <groupId>org.springframework</groupId>  
  31.             <artifactId>spring-webmvc</artifactId>  
  32.             <version>4.1.3.RELEASE</version>  
  33.         </dependency>  
  34.         <dependency>  
  35.             <groupId>org.springframework</groupId>  
  36.             <artifactId>spring-jdbc</artifactId>  
  37.             <version>4.1.3.RELEASE</version>  
  38.         </dependency>  
  39.         <dependency>  
  40.             <groupId>org.springframework</groupId>  
  41.             <artifactId>spring-aspects</artifactId>  
  42.             <version>4.1.3.RELEASE</version>  
  43.         </dependency>  
  44.         <!-- Mybatis 依赖 -->  
  45.         <dependency>  
  46.             <groupId>org.mybatis</groupId>  
  47.             <artifactId>mybatis</artifactId>  
  48.             <version>3.4.2</version>  
  49.         </dependency>  
  50.         <!-- mybatis整合Spring -->  
  51.         <dependency>  
  52.             <groupId>org.mybatis</groupId>  
  53.             <artifactId>mybatis-spring</artifactId>  
  54.             <version>1.3.0</version>  
  55.         </dependency>  
  56.         <!-- Mysql 依赖 -->  
  57.         <dependency>  
  58.             <groupId>mysql</groupId>  
  59.             <artifactId>mysql-connector-Java</artifactId>  
  60.             <version>5.1.6</version>  
  61.         </dependency>  
  62.         <!-- log4j日志 依赖 -->  
  63.         <dependency>  
  64.             <groupId>apache-log4j</groupId>  
  65.             <artifactId>log4j</artifactId>  
  66.             <version>1.2.15</version>  
  67.         </dependency>  
  68.         <!-- JSP相关 -->  
  69.         <dependency>  
  70.             <groupId>jstl</groupId>  
  71.             <artifactId>jstl</artifactId>  
  72.             <version>1.2</version>  
  73.         </dependency>  
  74.         <dependency>  
  75.             <groupId>javax.servlet</groupId>  
  76.             <artifactId>servlet-api</artifactId>  
  77.             <version>2.5</version>  
  78.             <scope>provided</scope>  
  79.         </dependency>  
  80.         <dependency>  
  81.             <groupId>javax.servlet</groupId>  
  82.             <artifactId>jsp-api</artifactId>  
  83.             <version>2.0</version>  
  84.             <scope>provided</scope>  
  85.         </dependency>  
  86.     </dependencies>  
  87.     <build>  
  88.         <finalName>ssm</finalName>  
  89.         <plugins>  
  90.             <plugin>  
  91.                 <groupId>org.mybatis.generator</groupId>  
  92.                 <artifactId>mybatis-generator-maven-plugin</artifactId>  
  93.                 <version>1.3.2</version>  
  94.                 <configuration>  
  95.                     <verbose>true</verbose>  
  96.                     <overwrite>true</overwrite>  
  97.                 </configuration>  
  98.             </plugin>  
  99.         </plugins>  
  100.     </build>  
  101. </project>  

3.然后在src/main/java下新建需要的package,如下图所示

maven实现ssm框架的整合DEMO

各包的用途如下:controller-无需多说,放的是springmvc的controller文件 mode-放的实体类 service-业务层 service.impl-业务实现层 mapper-mybatis的操作数据库的接口文件,类似于dao层(这里需要注意src/main/resources下的目录,和org.bb.ssm.mapper包名一样) 4.此处我使用mybatis-generator自动生成映射类、dao、xml文件,具体做法是:现在pom.xml中引用mybatis-generator这个插件(前面我们已经引进),在src/main/resource下新建generatorConfig.xml,内容如下: [html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  3. <generatorConfiguration>  
  4.     <!-- <properties resource="init.properties"/> -->  
  5.     <!-- 指定数据库连接驱动地址 -->  
  6.     <classPathEntry  
  7.         location="D:\Program Files\apache-maven-3.3.9\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-Java-5.1.6.jar" />  
  8.     <!-- 一个数据库一个 context -->  
  9.     <context id="context1">  
  10.         <commentGenerator>  
  11.             <!-- 是否取消注释 -->  
  12.             <property name="suppressAllComments" value="true"></property>  
  13.             <!-- 是否生成注释代时间戳-->  
  14.             <property name="suppressDate" value="true"></property>  
  15.         </commentGenerator>  
  16.         <!-- jdbc连接配置 -->  
  17.         <jdbcConnection  
  18.             connectionURL="jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=UTF-8"  
  19.             driverClass="com.mysql.jdbc.Driver" password="root" userId="root" />  
  20.         <!-- 类型转换 -->    
  21.         <javaTypeResolver>    
  22.             <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->    
  23.             <property name="forceBigDecimals" value="false"/>    
  24.         </javaTypeResolver>    
  25.         <!-- 生成实体类的地址 -->  
  26.         <javaModelGenerator targetPackage="org.bb.ssm.model"  
  27.             targetProject="D:\SXYC\workspace\ssm\src\main\java" />  
  28.         <!-- 生成mapper.xml文件 -->  
  29.         <sqlMapGenerator targetPackage="org.bb.ssm.mapper"  
  30.             targetProject="D:\SXYC\workspace\ssm\src\main\resources" />  
  31.         <!-- 生成mapxml对应的client 也就是接口dao -->  
  32.         <javaClientGenerator targetPackage="org.bb.ssm.mapper"  
  33.             targetProject="D:\SXYC\workspace\ssm\src\main\java" type="XMLMAPPER" />  
  34.         <table schema="ssm" tableName="userinfo"  domainObjectName="UserInfo" enableCountByExample="false"    
  35.             enableDeleteByExample="false" enableSelectByExample="false"    
  36.             enableUpdateByExample="false">  
  37.             <!-- domainObjectName  指定生成的类的名字 -->  
  38.         </table>  
  39.     </context>  
  40. </generatorConfiguration>  

[html] view plain copy

5.鼠标右击pom.xml,run as  "Maven build" 在goals中输入命令:mybatis-generator:generate,即可自动生成相应文件。 6.下面开始配置spring与mybatis的整合配置--applicationContext-mybatis.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" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  7.         http://www.springframework.org/schema/beans/spring-beans.xsd    
  8.         http://www.springframework.org/schema/mvc   
  9.         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd    
  10.         http://www.springframework.org/schema/context   
  11.         http://www.springframework.org/schema/context/spring-context.xsd  
  12.         http://www.springframework.org/schema/tx    
  13.         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
  14.     <!-- Mybatis 和 Spring的整合 -->  
  15.     <!-- 1.数据源:DriverManagerDataSource -->  
  16.     <bean id="dataSource"  
  17.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  18.         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
  19.         <property name="url" value="jdbc:mysql://localhost:3306/ssm"></property>  
  20.         <property name="username" value="root"></property>  
  21.         <property name="password" value="root"></property>  
  22.     </bean>  
  23.     <!-- 2.Mybatis 的 SqlSession的工厂:SqlSessionFactoryBean dataSource引用数据源 Mybatis   
  24.         定义数据源,同意加载配置 -->  
  25.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  26.         <property name="dataSource" ref="dataSource"></property>  
  27.         <property name="configLocation" value="classpath:mybatis-config.xml"></property>  
  28.     </bean>  
  29.     <!-- 3. Mybatis自动扫描加载Sql映射文件/接口:MapperScannerConfigurer sqlSessionFactory   
  30.         basePackage:指定sql映射文件/接口所在的包(自动扫描) -->  
  31.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  32.         <property name="basePackage" value="org.bb.ssm.mapper"></property>  
  33.         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
  34.     </bean>  
  35.     <!-- 4.事务管理:DataSourceTransactionManager dataSource 引用上面定义好的数据源 -->  
  36.     <bean id="txManager"  
  37.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  38.         <property name="dataSource" ref="dataSource"></property>  
  39.     </bean>  
  40.     <!-- 5.使用声明式事务: transaction-manager = "txManager" tx:advice 这种 是用 aop方式管理事物   
  41.         annotation-driven 这种是注解方式管理事物 第一种方式,需要在spring配置文件配置一些参数 第二种方式,需要在 类里 加一些注解进行事物管理   
  42.         用一种就行,没必须都用 -->  
  43.     <tx:annotation-driven transaction-manager="txManager" />  
  44. </beans>  

7.配置Mybatis的配置文件,mybatis官方文档推荐起名为mybatis-config.xml,这里遵循约定: [html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration  
  3.   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  5. <configuration>  
  6.     <!-- 配置打印 SQL 到控制台 以及懒加载 -->  
  7.     <settings>  
  8.         <setting name="logImpl" value="STDOUT_LOGGING" />  
  9.         <!-- 打开延迟加载的全局开关 -->  
  10.         <setting name="lazyLoadingEnabled" value="true" />  
  11.         <setting name="aggressiveLazyLoading" value="false" />  
  12.         <setting name="mapUnderscoreToCamelCase" value="true" />  
  13.     </settings>  
  14.     <!-- 为org.bb.ssm.mode.UserInfo 设置一个别名 UserInfo -->  
  15.     <typeAliases>  
  16.         <typeAlias type="org.bb.ssm.model.UserInfo" alias="UserInfo"/>  
  17.     </typeAliases>  
  18.     <mappers>  
  19.         <package name="org.bb.ssm.mapper"/>  
  20.     </mappers>  
  21. </configuration>  

8.下来是springMVC的配置文件spring-MVC.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" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  7.         http://www.springframework.org/schema/beans/spring-beans.xsd    
  8.         http://www.springframework.org/schema/mvc   
  9.         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd    
  10.         http://www.springframework.org/schema/context   
  11.         http://www.springframework.org/schema/context/spring-context.xsd  
  12.         http://www.springframework.org/schema/tx    
  13.         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">  
  14.     <!-- 开启注解 -->  
  15.     <mvc:annotation-driven/>  
  16.     <!-- 配置自定扫描包 -->  
  17.     <context:component-scan base-package="org.bb.ssm.controller"/>  
  18.     <context:component-scan base-package="org.bb.ssm.service.Impl"/>  
  19.     <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->  
  20.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  21.         <property name="prefix" value="/WEB-INF/view/"></property>  
  22.         <property name="suffix" value=".jsp"></property>  
  23.     </bean>  
  24.     <!-- 处理静态资源 -->  
  25.     <mvc:default-servlet-handler/>  
  26. </beans>  

9.web.xml配置: [html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <!-- 加载Spring 容器配置 -->  
  7.     <listener>  
  8.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  9.     </listener>  
  10.     <!-- 加载spring与mybatis的整合配置 -->  
  11.     <context-param>  
  12.         <param-name>contextConfigLocation</param-name>  
  13.         <param-value>classpath:applicationContext-mybatis.xml</param-value>  
  14.     </context-param>  
  15.     <!-- 配置 springMVC 核心控制器 -->  
  16.     <servlet>  
  17.         <servlet-name>springMVC</servlet-name>  
  18.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  19.         <init-param>  
  20.             <param-name>contextConfigLocation</param-name>  
  21.             <param-value>classpath:spring-MVC.xml</param-value>  
  22.         </init-param>  
  23.         <load-on-startup>1</load-on-startup>  
  24.     </servlet>  
  25.     <servlet-mapping>  
  26.         <servlet-name>springMVC</servlet-name>  
  27.         <url-pattern>/</url-pattern>  
  28.     </servlet-mapping>  
  29.     <!-- 防止Spring内存溢出监听器 -->  
  30.     <listener>  
  31.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
  32.     </listener>  
  33.     <!-- 解决工程编码过滤器  
  34.         注意:请将此过滤器放在所有过滤器的前面,否则有可能出现乱码  
  35.      -->  
  36.     <filter>  
  37.         <filter-name>encodingFilter</filter-name>  
  38.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  39.         <init-param>  
  40.             <param-name>encoding</param-name>  
  41.             <param-value>UTF-8</param-value>  
  42.         </init-param>  
  43.         <init-param>  
  44.             <param-name>forceEncoding</param-name>  
  45.             <param-value>true</param-value>  
  46.         </init-param>  
  47.     </filter>  
  48.     <filter-mapping>  
  49.         <filter-name>encodingFilter</filter-name>  
  50.         <url-pattern>`ssm` ;  
  51. USE `ssm`;  
  52. DROP TABLE IF EXISTS `userinfo`;  
  53. CREATE TABLE `userinfo` (  
  54.   `user_id` int(11) NOT NULL AUTO_INCREMENT,  
  55.   `user_name` varchar(30) DEFAULT NULL,  
  56.   `user_age` int(3) DEFAULT NULL,  
  57.   `user_address` varchar(400) DEFAULT NULL,  
  58.   PRIMARY KEY (`user_id`)  
  59. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;  

11.配置到这里已经完成,启动项目访问欢迎页面,如果看到熟悉的Hello world 代表整合成功了。

maven实现ssm框架的整合DEMO

12.创建业务层接口文件,UserInfoService.java 和 对应的实现类 UserInfoServiceImpl.java [html] view plain copy

  1. package org.bb.ssm.service;  
  2. import java.util.List;  
  3. import org.bb.ssm.model.UserInfo;  
  4. public interface UserInfoService {  
  5.     List<UserInfo> findAll();  
  6.     int deleteByPrimaryKey(Integer userId);  
  7.     int insert(UserInfo record);  
  8.     int insertSelective(UserInfo record);  
  9.     UserInfo selectByPrimaryKey(Integer userId);  
  10.     int updateByPrimaryKeySelective(UserInfo record);  
  11.     int updateByPrimaryKey(UserInfo record);  
  12. }  

[html] view plain copy

  1. package org.bb.ssm.service.Impl;  
  2. import java.util.List;  
  3. import javax.annotation.Resource;  
  4. import org.bb.ssm.mapper.UserInfoMapper;  
  5. import org.bb.ssm.model.UserInfo;  
  6. import org.bb.ssm.service.UserInfoService;  
  7. import org.springframework.stereotype.Service;  
  8. import org.springframework.transaction.annotation.Transactional;  
  9. //可以消除xml中对bean的配置  
  10. @Service  
  11. // 此处使用spring的声明式事务,不在使用sqlsession和提交事务了  
  12. @Transactional  
  13. public class UserInfoServiceImpl implements UserInfoService {  
  14.     @Resource  
  15.     private UserInfoMapper mapper;  
  16.     @Override  
  17.     public List<UserInfo> findAll() {  
  18.         List<UserInfo> list = mapper.findAll();  
  19.         return list;  
  20.     }  
  21.     @Override  
  22.     public int deleteByPrimaryKey(Integer userId) {  
  23.         return mapper.deleteByPrimaryKey(userId);  
  24.     }  
  25.     @Override  
  26.     public int insert(UserInfo record) {  
  27.         return mapper.insert(record);  
  28.     }  
  29.     @Override  
  30.     public int insertSelective(UserInfo record) {  
  31.         return mapper.insertSelective(record);  
  32.     }  
  33.     @Override  
  34.     public UserInfo selectByPrimaryKey(Integer userId) {  
  35.         return mapper.selectByPrimaryKey(userId);  
  36.     }  
  37.     @Override  
  38.     public int updateByPrimaryKeySelective(UserInfo record) {  
  39.         return mapper.updateByPrimaryKeySelective(record);  
  40.     }  
  41.     @Override  
  42.     public int updateByPrimaryKey(UserInfo record) {  
  43.         return mapper.updateByPrimaryKey(record);  
  44.     }  
  45. }  

13.创建controller文件,UserInfoCotroller.java [html] view plain copy

  1. package org.bb.ssm.controller;  
  2. import java.util.List;  
  3. import java.util.Map;  
  4. import org.bb.ssm.model.UserInfo;  
  5. import org.bb.ssm.service.UserInfoService;  
  6. import org.springframework.beans.factory.annotation.Autowired;  
  7. import org.springframework.stereotype.Controller;  
  8. import org.springframework.web.bind.annotation.ModelAttribute;  
  9. import org.springframework.web.bind.annotation.PathVariable;  
  10. import org.springframework.web.bind.annotation.RequestMapping;  
  11. import org.springframework.web.bind.annotation.RequestMethod;  
  12. import org.springframework.web.bind.annotation.RequestParam;  
  13. @Controller  
  14. @RequestMapping(value="/user")  
  15. public class UserInfoCotroller {  
  16.     @Autowired  
  17.     private UserInfoService userInfoService;  
  18.     @RequestMapping(value="/getAllUser")  
  19.     public String getAllUser(Map<String, Object> map){  
  20.         List<UserInfo> userList = userInfoService.findAll();  
  21.         map.put("ALLUSER", userList);  
  22.         return "allUser";  
  23.     }  
  24.     @RequestMapping(value="/addUser",method= RequestMethod.GET)  
  25.     public String addUser(Map<String, Object> map){  
  26.         //因为页面使用spring的form标签,其中属性modelAttribute需要存在bean 要不会报错  
  27.         map.put("command", new UserInfo());  
  28.         return "addUser";  
  29.     }  
  30.     @RequestMapping(value="/addUser",method=RequestMethod.POST)  
  31.     public String save(UserInfo userinfo){  
  32.         int result = userInfoService.insert(userinfo);  
  33.         System.out.println("添加用户的操作结果为:"+result);  
  34.         return "redirect:/user/getAllUser";  
  35.     }  
  36.     @RequestMapping(value="/delete/{id}",method=RequestMethod.DELETE)  
  37.     public String delete(@PathVariable(value="id") int id){  
  38.         int result = userInfoService.deleteByPrimaryKey(id);  
  39.         System.out.println("删除用户的操作结果为:"+result+"传递进来的id为:"+id);  
  40.         return "redirect:/user/getAllUser";  
  41.     }  
  42.     @RequestMapping(value="/detail/{id}",method=RequestMethod.GET)  
  43.     public String input(@PathVariable(value="id") Integer id,Map<String, Object> map){  
  44.         map.put("command", userInfoService.selectByPrimaryKey(id));  
  45.         return "addUser";  
  46.     }  
  47.     @ModelAttribute  
  48.     public void getUserInfo(@RequestParam(value="userId",required=false) Integer id  
  49.             ,Map<String, Object> map){  
  50.         System.out.println("每个controller 方法都会先调用我哦");  
  51.         if(id != null){  
  52.             System.out.println("update 操作");  
  53.             map.put("userInfo", userInfoService.selectByPrimaryKey(id));  
  54.         }  
  55.         System.out.println("insert  操作");  
  56.     }  
  57.     @RequestMapping(value="/addUser",method=RequestMethod.PUT)  
  58.     public String update(UserInfo userinfo){  
  59.         userInfoService.updateByPrimaryKey(userinfo);  
  60.         return "redirect:/user/getAllUser";  
  61.     }  
  62. }  

14.展示页面:分别是allUser.jsp、addUser.jsp [html] view plain copy

  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  5. <html>  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  8. <title>全部员工</title>  
  9. <!--    
  10.     SpringMVC 处理静态资源:  
  11.     1. 为什么会有这样的问题:  
  12.     优雅的 REST 风格的资源URL 不希望带 .html 或 .do 等后缀  
  13.     若将 DispatcherServlet 请求映射配置为 /,   
  14.     则 Spring MVC 将捕获 WEB 容器的所有请求, 包括静态资源的请求, SpringMVC 会将他们当成一个普通请求处理,   
  15.     因找不到对应处理器将导致错误。  
  16.     2. 解决: 在 SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/>  
  17. -->  
  18. <script type="text/javascript" src="../scripts/jquery-1.9.1.min.js"></script>  
  19. <script type="text/javascript">  
  20.     $(function(){  
  21.         $(".delete").click(function(){  
  22.             var href = $(this).attr("href");  
  23.             $("form").attr("action", href).submit();              
  24.             return false;  
  25.         });  
  26.     });  
  27. </script>  
  28. </head>  
  29. <body>  
  30.     <form action="" method="post">  
  31.         <input type="hidden" name="_method" value="DELETE" />  
  32.     </form>  
  33.     <c:choose>  
  34.         <c:when test="${empty requestScope.ALLUSER}">  
  35.             没有员工信息  
  36.         </c:when>  
  37.         <c:otherwise>  
  38.             <table border="1">  
  39.                 <tr>  
  40.                     <th>编号</th>  
  41.                     <th>姓名</th>  
  42.                     <th>年龄</th>  
  43.                     <th>地址</th>  
  44.                     <th>操作</th>  
  45.                 </tr>  
  46.                 <c:forEach items="${requestScope.ALLUSER }" var="UserInfo">  
  47.                     <tr>  
  48.                         <td> ${UserInfo.userId } </td>  
  49.                         <td> ${UserInfo.userName } </td>  
  50.                         <td>${UserInfo.userAge }</td>  
  51.                         <td>${UserInfo.userAddress }</td>  
  52.                         <td><a class="delete"  
  53.                             href="${pageContext.request.contextPath }/user/delete/${UserInfo.userId}">删除</a>    <a  
  54.                             href="${pageContext.request.contextPath }/user/detail/${UserInfo.userId}">更新</a></td>  
  55.                     </tr>  
  56.                 </c:forEach>  
  57.             </table>  
  58.         </c:otherwise>  
  59.     </c:choose>  
  60. </body>  
  61. </html>  

[html] view plain copy

  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  4. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>  
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  6. <html>  
  7. <head>  
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  9. <title>添加新员工</title>  
  10. </head>  
  11. <body>  
  12.     <form:form action="${pageContext.request.contextPath }/user/addUser" method="post" modelAttribute="command">  
  13.         <c:if test="${command.userId != null }">  
  14.             <form:hidden path="userId"/>  
  15.             <input type="hidden" name="_method" value="PUT"/>  
  16.             <%-- 对于 _method 不能使用 form:hidden 标签, 因为 modelAttribute 对应的 bean 中没有 _method 这个属性 --%>  
  17.             <%--   
  18.             <form:hidden path="_method" value="PUT"/>  
  19.             --%>  
  20.         </c:if>  
  21.         userName : <form:input path="userName"/><br><br>  
  22.         userAge : <form:input path="userAge"/><br><br>  
  23.         userAddress : <form:input path="userAddress"/><br><br>  
  24.         <input type="submit" value="提交"/>  
  25.     </form:form>  
  26. </body>  
  27. </html>  

15.运行tomcat,访问http://localhost:8089/ssm/user/addUser 进入添加用户页面,输入用户信息

maven实现ssm框架的整合DEMO

点击提交

maven实现ssm框架的整合DEMO

点击更新(此处addUser.jsp使用了springmvc的 form标签,可以更方便的进行数据的回显):

maven实现ssm框架的整合DEMO
maven实现ssm框架的整合DEMO

点击提交(这里偷懒,将更新和添加放在一个页面了)

maven实现ssm框架的整合DEMO

点击删除

maven实现ssm框架的整合DEMO

最后附上项目的树状图:

maven实现ssm框架的整合DEMO

到这里,ssm整合以及用户的crud功能已基本实现。

gitHub:免积分下载

继续阅读