SSM整合案例(Spring+Struts+Mybatis)


项目目录结构

第一步:创建数据库和数据表

 1 CREATE DATABASE
 2 IF NOT EXISTS mybatis;
 3 
 4 USE mybatis;
 5 
 6 CREATE TABLE t_user (
 7     user_id INT (11) NOT NULL AUTO_INCREMENT,
 8     user_name VARCHAR (20) NOT NULL,
 9     user_age VARCHAR (20) NOT NULL,
10     PRIMARY KEY (user_id)
11 ) ENGINE = INNODB DEFAULT CHARSET = utf8;

第二步:导入jar包

第三步:创建实体类

  1 package com.oracle.model;
  2 
  3 /**
  4  * 
  5  * @ClassName: 类名:User
  6  * @Description: 描述:User实体类
  7  * @author: 作者:Back
  8  * @date: 时间:2017年1月12日 下午2:12:55
  9  */
 10 public class User {
 11     // 用户id
 12     private int id;
 13     // 用户年龄
 14     private String age;
 15     // 用户名
 16     private String userName;
 17 
 18     /**
 19      * 
 20      * @Title:User
 21      * @Description:隐式构造方法
 22      */
 23     public User() {
 24 
 25     }
 26 
 27     /**
 28      * 
 29      * @Title:User
 30      * @Description:全参构造方法
 31      * @param id
 32      * @param age
 33      * @param userName
 34      */
 35     public User(int id, String age, String userName) {
 36         super();
 37         this.id = id;
 38         this.age = age;
 39         this.userName = userName;
 40     }
 41 
 42     /**
 43      * 
 44      * @Title: getId
 45      * @Description: TODO
 46      * @return
 47      * @return: int
 48      */
 49     public int getId() {
 50         return id;
 51     }
 52 
 53     /**
 54      * 
 55      * @Title: setId
 56      * @Description: TODO
 57      * @param id
 58      * @return: void
 59      */
 60     public void setId(int id) {
 61         this.id = id;
 62     }
 63 
 64     /**
 65      * 
 66      * @Title: getAge
 67      * @Description: TODO
 68      * @return
 69      * @return: String
 70      */
 71     public String getAge() {
 72         return age;
 73     }
 74 
 75     /**
 76      * 
 77      * @Title: setAge
 78      * @Description: TODO
 79      * @param age
 80      * @return: void
 81      */
 82     public void setAge(String age) {
 83         this.age = age;
 84     }
 85 
 86     /**
 87      * 
 88      * @Title: getUserName
 89      * @Description: TODO
 90      * @return
 91      * @return: String
 92      */
 93     public String getUserName() {
 94         return userName;
 95     }
 96 
 97     /**
 98      * 
 99      * @Title: setUserName
100      * @Description: TODO
101      * @param userName
102      * @return: void
103      */
104     public void setUserName(String userName) {
105         this.userName = userName;
106     }
107 
108 }

第四步:创建UserDao接口

 1 package com.oracle.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.oracle.model.User;
 6 
 7 /**
 8  * 
 9  * @ClassName: 类名:UserMapper
10  * @Description: 描述:UserMapper接口
11  * @author: 作者:Back
12  * @date: 时间:2017年1月12日 下午2:16:10
13  */
14 public interface UserMapper {
15     /**
16      * 
17      * @Title: save
18      * @Description: 新增用户信息
19      * @param user
20      * @return: void
21      */
22     public void save(User user);
23 
24     /**
25      * 
26      * @Title: update
27      * @Description: 修改用户信息
28      * @param user
29      * @return
30      * @return: boolean
31      */
32     public boolean update(User user);
33 
34     /**
35      * 
36      * @Title: delete
37      * @Description: 删除用户信息
38      * @param id
39      * @return
40      * @return: boolean
41      */
42     public boolean delete(int id);
43 
44     /**
45      * 
46      * @Title: findById
47      * @Description: 根据id查找用户信息
48      * @param id
49      * @return
50      * @return: User
51      */
52     public User findById(int id);
53 
54     /**
55      * 
56      * @Title: findAll
57      * @Description: 查找全部用户信息
58      * @return
59      * @return: List<User>
60      */
61     public List<User> findAll();
62 }

第五步:在数据持久层(dao层)同级目录下创建UserMapper.xml SQL映射语句文件

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   
 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 
 5 <!-- namespace:必须与对应的接口全类名一致 id:必须与对应接口的某个对应的方法名一致 parameterType:参数类型 resultType:返回值类型-->
 6 <mapper namespace="com.oracle.dao.UserMapper">
 7     <!-- 新增用户信息 -->
 8     <insert id="save" parameterType="User">
 9         insert into
10         t_user(user_name,user_age) values(#{userName},#{age})
11     </insert>
12     <!-- 更新用户信息 -->
13     <update id="update" parameterType="User">
14         update t_user set
15         user_name=#{userName},user_age=#{age} where user_id=#{id}
16     </update>
17     <!-- 删除用户信息 -->
18     <delete id="delete" parameterType="int">
19         delete from t_user where
20         user_id=#{id}
21     </delete>
22     <!-- 根据用户Id查询用户信息 -->
23     <!-- mybsits_config中配置的alias类别名,也可直接配置resultType为类路劲 -->
24     <select id="findById" parameterType="int" resultType="User">
25         select
26         user_id id,user_name userName,user_age age from t_user where
27         user_id=#{id}
28     </select>
29     <!-- 查询所有用户信息 -->
30     <select id="findAll" resultType="User">
31         select user_id id,user_name
32         userName,user_age age from t_user
33     </select>
34 </mapper>

第六步:在service下创建UserService.java接口

 1 package com.oracle.service;
 2 
 3 import java.util.List;
 4 
 5 import com.oracle.model.User;
 6 
 7 /**
 8  * 
 9  * @ClassName: 类名:UserService
10  * @Description: 描述:业务逻辑接口层
11  * @author: 作者:Back
12  * @date: 时间:2017年1月12日 下午2:45:26
13  */
14 public interface UserService {
15     /**
16      * 
17      * @Title: save
18      * @Description: 新增用户信息
19      * @param user
20      * @return: void
21      */
22     public void save(User user);
23 
24     /**
25      * 
26      * @Title: update
27      * @Description: 修改用户信息
28      * @param user
29      * @return
30      * @return: boolean
31      */
32     public boolean update(User user);
33 
34     /**
35      * 
36      * @Title: delete
37      * @Description: 删除用户信息
38      * @param id
39      * @return
40      * @return: boolean
41      */
42     public boolean delete(int id);
43 
44     /**
45      * 
46      * @Title: findById
47      * @Description: 根据用户id查找用户信息
48      * @param id
49      * @return
50      * @return: User
51      */
52     public User findById(int id);
53 
54     /**
55      * 
56      * @Title: findAll
57      * @Description: 查找全部用户信息
58      * @return
59      * @return: List<User>
60      */
61     public List<User> findAll();
62 }

第七步:在com.oracle.service.impl下实现Service接口

  1 package com.oracle.service.impl;  2 
  3 import java.util.List;
  4 
  5 import javax.annotation.Resource;
  6 
  7 import org.springframework.stereotype.Service;
  8 import org.springframework.transaction.annotation.Transactional;
  9 
 10 import com.liuxianglin.dao.UserMapper;
 11 import com.liuxianglin.model.User;
 12 import com.liuxianglin.service.UserService;
 13 
 14 /**
 15  * Copyright © 2017刘祥林|BMEETYMISS. All rights reserved.
 16  *
 17  * @Title: 文件名:UserviceImpl.java
 18  * @Prject: 项目名:SSM
 19  * @Package: 包名:com.liuxianglin.service.impl
 20  * @ClassName: 类名:UserviceImpl
 21  * @Description: 描述:TODO
 22  * @author: 作者:Back
 23  * @date: 时间:2017年1月11日 下午5:23:58
 24  * @version: 版本:V1.0
 25  */
 26 
 27 @Service
 28 @Transactional // 此处不再进行创建SqlSession和提交事务,都已交由spring去管理了
 29 public class UserviceImpl implements UserService {
 30 
 31     @Resource
 32     private UserMapper mapper;
 33 
 34     /*
 35      * (non Javadoc)
 36      * 
 37      * @Title: save
 38      * 
 39      * @Description: TODO
 40      * 
 41      * @param user
 42      * 
 43      * @see com.liuxianglin.service.UserService#save(com.liuxianglin.model.User)
 44      */
 45     @Override
 46     public void save(User user) {
 47         // TODO Auto-generated method stub
 48         mapper.save(user);
 49     }
 50 
 51     /*
 52      * (non Javadoc)
 53      * 
 54      * @Title: update
 55      * 
 56      * @Description: TODO
 57      * 
 58      * @param user
 59      * 
 60      * @return
 61      * 
 62      * @see
 63      * com.liuxianglin.service.UserService#update(com.liuxianglin.model.User)
 64      */
 65     @Override
 66     public boolean update(User user) {
 67         // TODO Auto-generated method stub
 68         return mapper.update(user);
 69     }
 70 
 71     /*
 72      * (non Javadoc)
 73      * 
 74      * @Title: delete
 75      * 
 76      * @Description: TODO
 77      * 
 78      * @param id
 79      * 
 80      * @return
 81      * 
 82      * @see com.liuxianglin.service.UserService#delete(int)
 83      */
 84     @Override
 85     public boolean delete(int id) {
 86         // TODO Auto-generated method stub
 87         return mapper.delete(id);
 88     }
 89 
 90     /*
 91      * (non Javadoc)
 92      * 
 93      * @Title: findById
 94      * 
 95      * @Description: TODO
 96      * 
 97      * @param id
 98      * 
 99      * @return
100      * 
101      * @see com.liuxianglin.service.UserService#findById(int)
102      */
103     @Override
104     public User findById(int id) {
105         // TODO Auto-generated method stub
106         User user = mapper.findById(id);
107         return user;
108     }
109 
110     /*
111      * (non Javadoc)
112      * 
113      * @Title: findAll
114      * 
115      * @Description: TODO
116      * 
117      * @return
118      * 
119      * @see com.liuxianglin.service.UserService#findAll()
120      */
121     @Override
122     public List<User> findAll() {
123         // TODO Auto-generated method stub
124         List<User> findAllList = mapper.findAll();
125         return findAllList;
126     }
127 
128 }

第八步:在actioin中创建UserAction.java

  1 package com.oracle.action;
  2 
  3 import java.io.IOException;
  4 import java.io.PrintWriter;
  5 import java.util.List;
  6 
  7 import javax.servlet.http.HttpServletRequest;
  8 import javax.servlet.http.HttpServletResponse;
  9 
 10 import org.springframework.beans.factory.annotation.Autowired;
 11 import org.springframework.stereotype.Controller;
 12 import org.springframework.web.bind.annotation.RequestMapping;
 13 
 14 import com.liuxianglin.model.User;
 15 import com.liuxianglin.service.UserService;
 16 
 17 /**
 18  * Copyright © 2017刘祥林|BMEETYMISS. All rights reserved.
 19  *
 20  * @Title: 文件名:UserAction.java
 21  * @Prject: 项目名:SSM
 22  * @Package: 包名:com.liuxianglin.action
 23  * @ClassName: 类名:UserAction
 24  * @Description: 描述:TODO
 25  * @author: 作者:Back
 26  * @date: 时间:2017年1月11日 下午5:31:17
 27  * @version: 版本:V1.0
 28  */
 29 @Controller
 30 @RequestMapping("/user")
 31 public class UserAction {
 32     // 自动注入属性
 33     @Autowired
 34     private UserService service;
 35 
 36     public String toAddUser(HttpServletRequest request) {
 37         return "/addUser";
 38     }
 39 
 40     /**
 41      * 
 42      * @Title: addUser
 43      * @Description: 跳转到添加用户界面
 44      * @param user
 45      * @param request
 46      * @return
 47      * @return: String
 48      */
 49     @RequestMapping("/addUser")
 50     public String addUser(User user, HttpServletRequest request) {
 51         service.save(user);
 52         return "redirect:/user/getAllUser";
 53     }
 54 
 55     /**
 56      * 
 57      * @Title: updateUser
 58      * @Description:编辑用户
 59      * @param user
 60      * @param request
 61      * @return
 62      * @return: String
 63      */
 64     public String updateUser(User user, HttpServletRequest request) {
 65         if (service.update(user)) {
 66             user = service.findById(user.getId());
 67             request.setAttribute("user", user);
 68             return "redirect:/user/getAllUser";
 69         } else {
 70             return "/error";
 71         }
 72     }
 73 
 74     /**
 75      * 
 76      * @Title: delUser
 77      * @Description: 删除用户
 78      * @param id
 79      * @param request
 80      * @param response
 81      * @return: void
 82      */
 83     public void delUser(int id, HttpServletRequest request, HttpServletResponse response) {
 84         String result = "{\"result\":\"error\"}";
 85         if (service.delete(id)) {
 86             result = "{\"result\":\"success\"}";
 87         }
 88         response.setContentType("application/json");
 89         try {
 90             PrintWriter out = response.getWriter();
 91             out.write(result);
 92         } catch (IOException e) {
 93             e.printStackTrace();
 94         }
 95     }
 96 
 97     /**
 98      * 
 99      * @Title: getUser
100      * @Description: 根据id查询单个用户
101      * @param id
102      * @param request
103      * @return
104      * @return: String
105      */
106     public String getUser(int id, HttpServletRequest request) {
107         request.setAttribute("user", service.findById(id));
108         return "/editUser";
109     }
110 
111     /**
112      * 
113      * @Title: getAllUser
114      * @Description: 获取全部用户列表
115      * @param request
116      * @return
117      * @return: String
118      */
119     public String getAllUser(HttpServletRequest request) {
120         List<User> findAll = service.findAll();
121         request.setAttribute("userList", findAll);
122         return "/allUser";
123     }
124 
125 }

第九步:在src下创建log4j.properties属性文件

 1 ### set log levels ### 
 2 log4j.rootLogger = info , Console , D
 3 #Console
 4 log4j.appender.Console=org.apache.log4j.ConsoleAppender
 5 log4j.appender.Console.layout=org.apache.log4j.PatternLayout
 6 log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
 7 log4j.logger.java.sql.ResultSet=INFO
 8 log4j.logger.org.apache=INFO
 9 log4j.logger.java.sql.Connection=INFO
10 log4j.logger.java.sql.Statement=INFO
11 log4j.logger.java.sql.PreparedStatement=INFO
12 #output2file
13 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 
14 log4j.appender.D.File = D:/logs/log.log 
15 log4j.appender.D.Append = true 
16 log4j.appender.D.Threshold = DEBUG
17 log4j.appender.D.layout = org.apache.log4j.PatternLayout 
18 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

第十步:在src下创建mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5 
 6     <!-- 实体类,简称 -设置别名 -->
 7     <typeAliases>
 8         <typeAlias alias="User" type="com.oracle.model.User" />
 9     </typeAliases>
10     <!-- 实体接口映射资源 -->
11     <!-- 说明:如果xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也可以省略,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去查找与xxMapper.java相同目录和名称的xxMapper.xml -->
12     <mappers>
13         <mapper resource="com/oracle/dao/UserMapper.xml" />
14     </mappers>
15 </configuration>  

第十一步:在src下创建spring-common.xml

 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" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans
 7         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 8         http://www.springframework.org/schema/context
 9         http://www.springframework.org/schema/context/spring-context-4.0.xsd
10         http://www.springframework.org/schema/tx
11         http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
12 
13 
14     <!-- 1. 数据源 : DriverManagerDataSource -->
15     <bean id="dataSource"
16         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
17         <!-- jdbc驱动类名字 -->
18         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
19         <!-- 数据库地址 -->
20         <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
21         <!-- 数据账户名 -->
22         <property name="username" value="root" />
23         <!-- 数据密码 -->
24         <property name="password" value="123456" />
25     </bean>
26 
27     <!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 -->
28     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
29         <property name="dataSource" ref="dataSource"></property>
30         <property name="configLocation" value="classpath:mybatis-config.xml" />
31     </bean>
32 
33     <!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory 
34         basePackage:指定sql映射文件/接口所在的包(自动扫描) -->
35     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
36         <property name="basePackage" value="com.oracle.dao"></property>
37         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
38     </bean>
39 
40     <!-- 4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 -->
41     <bean id="txManager"
42         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
43         <property name="dataSource" ref="dataSource"></property>
44     </bean>
45 
46     <!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 -->
47     <tx:annotation-driven transaction-manager="txManager" />
48 
49 </beans>

第十四步:在src下创建一个spring-mvc.xml

 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:context="http://www.springframework.org/schema/context"
 4     xmlns:mvc="http://www.springframework.org/schema/mvc"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 6     http://www.springframework.org/schema/beans/spring-beans.xsd
 7     http://www.springframework.org/schema/context
 8     http://www.springframework.org/schema/context/spring-context-4.0.xsd
 9     http://www.springframework.org/schema/mvc
10     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
11 
12     <!-- 注解扫描包 -->
13     <context:component-scan base-package="com.oracle" />
14 
15     <!-- 开启注解 -->
16     <mvc:annotation-driven />
17 
18     <!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd -->
19     <mvc:resources mapping="/img/**" location="/img/" />
20     <mvc:resources mapping="/js/**" location="/js/" />
21     <mvc:resources mapping="/css/**" location="/css/" />
22     <mvc:resources mapping="/html/**" location="/html/" />
23 
24 
25 
26     <!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
27     <bean id="viewResolver"
28         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
29         <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
30         <property name="prefix" value="/WEB-INF/jsp/" />
31         <property name="suffix" value=".jsp" />
32     </bean>
33 </beans>

第十五步:配置web.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5     id="WebApp_ID" version="3.1">
 6     <display-name>SpringMVC_Spriing_Mybatis</display-name>
 7     <!-- 加载Spring容器配置 -->
 8     <listener>
 9         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
10     </listener>
11 
12     <!-- 设置Spring容器加载所有的配置文件的路径 -->
13     <context-param>
14         <param-name>contextConfigLocation</param-name>
15         <param-value>classpath*:spring-*.xml</param-value>
16     </context-param>
17 
18     <!-- 配置SpringMVC核心控制器 -->
19     <servlet>
20         <servlet-name>springMVC</servlet-name>
21         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
22         <!-- 配置初始配置化文件,前面contextConfigLocation看情况二选一 -->
23         <init-param>
24             <param-name>contextConfigLocation</param-name>
25             <param-value>classpath*:spring-mvc.xml</param-value>
26         </init-param>
27         <!-- 启动加载一次 -->
28         <load-on-startup>1</load-on-startup>
29     </servlet>
30 
31     <!--为DispatcherServlet建立映射 -->
32     <servlet-mapping>
33         <servlet-name>springMVC</servlet-name>
34         <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
35         <url-pattern>/</url-pattern>
36     </servlet-mapping>
37 
38     <!-- 防止Spring内存溢出监听器 -->
39     <listener>
40         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
41     </listener>
42 
43     <!-- 解决工程编码过滤器 -->
44     <filter>
45         <filter-name>encodingFilter</filter-name>
46         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
47         <init-param>
48             <param-name>encoding</param-name>
49             <param-value>UTF-8</param-value>
50         </init-param>
51         <init-param>
52             <param-name>forceEncoding</param-name>
53             <param-value>true</param-value>
54         </init-param>
55     </filter>
56 
57     <filter-mapping>
58         <filter-name>encodingFilter</filter-name>
59         <url-pattern>/*</url-pattern>
60     </filter-mapping>
61 
62     <welcome-file-list>
63         <welcome-file>index.jsp</welcome-file>
64     </welcome-file-list>
65 </web-app>

第十六步:前端配置引入jquery-1.7.1.js  创建index.jsp文件

 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()
 5             + path + "/";
 6 %>
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9 <head>
10 <base href="<%=basePath%>">
11 <title>首页</title>
12 </head>
13 <body>
14     <a href="<%=basePath%>user/getAllUser">进入用户管理页</a>
15 </body>
16 </html>

创建allUser.jsp

 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()
 5             + path + "/";
 6 %>
 7 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10 <head>
11 <base href="<%=basePath%>">
12 <script type="text/javascript" src="js/jquery-1.7.1.js"></script>
13 <title>用户列表</title>
14 
15 <script type="text/javascript">
16     function del(id){
17         alert("删除");
18         $.get("<%=basePath%>
19     user/delUser?id=" + id, function(data) {
20             if ("success" == data.result) {
21                 window.location.reload();
22             } else {
23                 alert("删除失败");
24             }
25         });
26     }
27 </script>
28 </head>
29 <body>
30     <h6>
31         <a href="<%=basePath%>user/toAddUser">添加用户</a>
32     </h6>
33     <table border="1">
34         <tbody>
35             <tr>
36                 <th>姓名</th>
37                 <th>年龄</th>
38                 <th>操作</th>
39             </tr>
40             <c:if test="${!empty userList }">
41                 <c:forEach items="${userList}" var="user">
42                     <tr>
43                         <td>${user.userName }</td>
44                         <td>${user.age }</td>
45                         <td><a href="<%=basePath%>user/getUser?id=${user.id}">编辑</a>
46                             <a href="javascript:del('${user.id }')">删除</a></td>
47                     </tr>
48                 </c:forEach>
49             </c:if>
50         </tbody>
51     </table>
52 </body>
53 </html>

创建editUser.jsp

 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()
 5             + path + "/";
 6 %>
 7 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10 <head>
11 <base href="<%=basePath%>">
12 <title>编辑用户</title>
13 <script type="text/javascript">
14     function updateUser(){
15         var form = document.forms[0];
16         form.action = "<%=basePath%>
17     user/updateUser";
18         form.method = "post";
19         form.submit();
20     }
21 </script>
22 
23 </head>
24 
25 <body>
26     <h1>添加用户</h1>
27     <form action="" name="userForm">
28         <input type="hidden" name="id" value="${user.id }" /> 姓名:<input
29             type="text" name="userName" value="${user.userName }" /> 年龄:<input
30             type="text" name="age" value="${user.age }" /> <input type="button"
31             value="编辑" onclick="updateUser()" />
32     </form>
33 </body>
34 
35 </html>

创建addUser.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3     // 获取请求的路径
 4     String path = request.getContextPath();
 5     // getScheme:协议 getServerName:主机名 getServerPort:端口号
 6     String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
 7             + path + "/";
 8 %>
 9 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
10 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
11 <html>
12 <head>
13 <base href="<%=basePath%>">
14 <title>添加用户</title>
15 <script type="text/javascript">
16     function addUser(){
17         var form = document.forms[0];
18         form.action = "<%=basePath%>user/addUser";
19         form.method = "post";
20         form.submit();
21     }
22 </script>
23 
24 </head>
25 
26 <body>
27     <h1>添加用户</h1>
28     <form action="" name="userForm">
29         姓名:<input type="text" name="userName"> 年龄:<input type="text"
30             name="age"> <input type="button" value="添加"
31             onclick="addUser()">
32     </form>
33 </body>
34 </html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM