spring mvc+Mybatis+bootstrap简单应用

来源:互联网 发布:网络电视怎么重新搜台 编辑:程序博客网 时间:2024/06/05 02:53

    实现一个spring mvc结合Mybatis的简单示例,前端的界面主要是JSP,包含了少量的js和jQuery等内容,css渲染则使用了bootstrap。当然,整体来说还是很简单的一个demo。

    这个项目,主要是实现了对于数据库中User表的增删改查功能,放在界面也就是登录、注册、修改个人信息和删除用户。

    关于spring MVC的内容,可以参照我的前几篇博客,主要都是简单的示例。关于mybatis,可以去看http://download.csdn.net/detail/tan1912224958/8535731 这个资料,里面讲解得非常详细,很适合初学者学习。

    嗯,下面spring MVC和mybatis整合示例的各个部分。

    PS:博主使用的环境为eclipse for Java web developers,创建的是Dynamic Web Project。使用的所有包参照链接:【http://download.csdn.net/detail/qq_28379809/9923026。】

    可能少了一个SQL连接的jar包,如果运行失败的话,参照下面的免费下载链接:http://download.csdn.net/detail/orzma/4828533

一、配置文件,一共是四个,两个是spring mvc的,两个是Mybatis的,这里没有关联。

  web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><!-- 解决中文乱码问题 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
  springmvc-servlet.xml,这个主要是dispatcher.

<?xml version="1.0" encoding="UTF-8"?><beans:beans xmlns:beans="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "default-autowire="byName"><mvc:annotation-driven /><!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --><context:component-scan base-package="net.use" /><!-- 这两个类用来启动基于Spring MVC的注解功能,将控制器与方法映射加入到容器中 --><beans:beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /><beans:beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /><!-- 这个类用于Spring MVC视图解析 --><beans:bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><beans:property name="prefix" value="/WEB-INF/pages/" /><beans:property name="suffix" value=".jsp" /></beans:bean></beans:beans>

User.xml,这个xml文件其实是关于sql操作的配置文件,里面定义了几个对于数据库操作的方法。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- <mapper namespace="com.yihaomen.mybatis.models.UserMapper"> --><mapper namespace="net.use.inter.IUserOperation">      <!--执行增加操作的SQL语句。id和parameterType分别与IUserOperation接口中的addUser方法的名字和参数类型一致。          以#{name}的形式引用Student参数的name属性,MyBatis将使用反射读取Student参数的此          属性。#{name}中name大小写敏感。引用其他 的gender等属性与此一致。seGeneratedKeys设置 为"true"表明          要MyBatis获取由数据库自动生成的主键;keyProperty="id"指定把获取到的主键值注入 到Student的id属性-->    <insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">       insert into user(name,age,address,pwd) values(#{name},#{age},#{address},#{pwd})   </insert>            <!-- 为了返回list 类型而定义的returnMap -->    <resultMap type="User" id="resultListUser">       <id column="id" property="id" />       <result column="name" property="name" />       <result column="age" property="age" />       <result column="address" property="address" />       <result column="pwd" property="pwd" />    </resultMap>      <!-- 多参数传入参照博客:http://www.cnblogs.com/mingyue1818/p/3714162.html -->    <select id="selectUsers" resultMap="resultListUser">       select * from user where name =#{arg0} and pwd =#{arg1}     </select>      <!-- delete user from the database -->   <delete id="deleteUser">     delete from user where name =#{arg0} and pwd =#{arg1}     </delete>      <!-- first find the id of the user,and then change it -->   <update id="updateUser" parameterType="User" >       update user set name=#{name},age=#{age},address=#{address},pwd=#{pwd} where id=#{id}    </update>      <select id="findUserByID" parameterType="int" resultType="User">      select * from `user` where id = #{id}    </select>    </mapper>
Configuration.xml,这个是mybatis的实际配置文件,配置数据库的类型、访问、用户密码,以及mapper等。这里的mapper就是指上面的user.xml。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>    <typeAliases>       <typeAlias alias="User" type="net.use.info.User"/>    </typeAliases>       <environments default="development">       <environment id="development">       <transactionManager type="JDBC"/>          <dataSource type="POOLED">          <property name="driver" value="com.mysql.jdbc.Driver"/>          <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />          <property name="username" value="root"/>          <property name="password" value="19961006"/>          </dataSource>       </environment>    </environments>       <mappers>       <mapper resource="net/use/mapper/User.xml"/>    </mappers> </configuration>

二、Java部分

UserController.java,spring MVC的控制器,也就是浏览器请求提交后的实际执行者,根据上面的配置文件,所有的浏览器请求都会被提交到这个Controller中,然后根据不同的URL由不同的方法执行。

其中,这些方法主要包含了两大类,一种是跳转界面的,也就是打开某个界面,第二种就是处理请求的,会调用mybatis的mapper里定义的方法来执行SQL操作,从数据库取出或更新某些内容。

package net.use.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import net.use.form.UserForm;import net.use.info.User;import net.use.mapper.SessionFactory;@Controllerpublic class UserController {@RequestMapping("")public String index(Model model) {return "login";//}@RequestMapping("toLogin")public String toLo(Model model) {return "login";//}@RequestMapping("toRegister")public String toRe() {return "register";}@RequestMapping("toUpdate")public String toUp() {return "update";}@RequestMapping("toDelete")public String toDe() {return "delete";}/*@RequestMapping(value="/detail")public String detail(@ModelAttribute("form") UserForm userForm,Model model) {SessionFactory sessionFactory = new SessionFactory();    User user = sessionFactory.getUser(userForm.getName(),userForm.getPwd());    model.addAttribute("user",user);return "detail";//}*/@RequestMapping(value="/login")public String toLogin(@ModelAttribute("form") UserForm userForm,Model model) {System.out.println("function:toLogin;the original userForm:"+userForm.getName()+","+userForm.getPwd());SessionFactory sessionFactory = new SessionFactory();    User user = sessionFactory.getUser(userForm.getName(),userForm.getPwd());    model.addAttribute("user",user);return "detail";}@RequestMapping(value="/register")public String save(@ModelAttribute("form") UserForm userForm, Model model) { //model.addAttribute("user", user);//System.out.println(user.getName()+","+user.getSex()+","+user.getPwd()+","+user.getAge());//first,to convert the userform to the userSystem.out.println("function:save;the original userForm:"+userForm.getName()+","+userForm.getPwd()+","+userForm.getAge()+","+userForm.getAddress());System.out.println("the type of the age:"+userForm.getAge().getClass());SessionFactory sessionFactory = new SessionFactory();User isUser=sessionFactory.getUser(userForm.getName(), userForm.getPwd());if(isUser.getName() !=null) {System.out.println("该用户名和密码对应的用户已经存在!");}else {User user = new User();user.setName(userForm.getName());user.setAge(userForm.getAge());user.setAddress(userForm.getAddress());user.setPwd(userForm.getPwd());    sessionFactory.addUser(user);    user=sessionFactory.getUser(user.getName(), user.getPwd());//now the new user has an id    model.addAttribute("user",user);}        return "detail";//}@RequestMapping(value="/update")public String update(@ModelAttribute("form") UserForm userForm, Model model) {//首先有一个让用户输入id的页面,然后根据此id来确认要修改的用户,跟着,在update界面,将用户的修改后的信息提交SessionFactory sessionFactory = new SessionFactory();User oldUser = sessionFactory.findUserByID(Integer.parseInt(userForm.getId()));System.out.println("the old user:"+oldUser.getId()+","+oldUser.getName()+","+oldUser.getPwd()+","+oldUser.getAge()+","+   oldUser.getAddress());if( ! userForm.getId().equals(oldUser.getId()+"")) {System.out.println("指定的用户id不存在,请重新输入");}else {User newUser = new User();newUser.setName(userForm.getName());int age=userForm.getAge();System.out.println(age);newUser.setAge(userForm.getAge());newUser.setAddress(userForm.getAddress());newUser.setPwd(userForm.getPwd());newUser.setId(oldUser.getId());//old user and the new user should has the same idsessionFactory.updateUser(newUser);model.addAttribute("user", newUser);}return "detail";}@RequestMapping(value="/delete")public String delete(@ModelAttribute("form") UserForm userForm, Model model) {System.out.println("the original userForm to delete:"+userForm.getId()+","+userForm.getName());SessionFactory sessionFactory = new SessionFactory();User user = sessionFactory.findUserByID(Integer.parseInt(userForm.getId()));    sessionFactory.deleteUser(user.getName(), user.getPwd());    return "login";}}


UserForm.java

额,这个是User类的一个非常近似的类,因为博主对于数据绑定部分的内容还有些朦胧,所以采取了先将界面表单数据绑定到这个Form类,然后再手动地映射到user类。

package net.use.form;public class UserForm {private String name; // nameprivate String pwd; // pwdprivate Integer age; // ageprivate String address;private String id;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}}


User.java

本示例中唯一的data类,对应着浏览器表单和数据库User表。

package net.use.info;import java.io.Serializable;public class User implements Serializable {/** * @author zjn */private static final long serialVersionUID = 1L;private int id;private String name; // nameprivate String pwd; // pwdprivate int age; // ageprivate String address;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}//private Connection connection;//connection是对象//全部实现了set和get方法�? 以此完成依赖注入(设值注入)}


IUserOperation.java

mybatis的接口实现。其中定义了实际对于数据库的操作接口,至于具体的方法实现,是在User.xml配置文件中实现的(上面)。

package net.use.inter;import java.util.List;import net.use.info.User;public interface IUserOperation {//this interface is the interface connected with the User.xml configuration files, the method defined in this interface //and implment in the User.xmlpublic void addUser(User user);public List<User> selectUsers(String name,String pwd);public void deleteUser(String name, String pwd);public void updateUser(User user);public User findUserByID(int id);}


SessionFactory.java

这个类是对于数据库操作的再封装,因为不想让Controller类的方法每次都去重新初始化一个SQLSessionFactory,还要去分别执行那么多的操作,为了代码的简洁性,增加了这个类。

对于浏览器请求来说,它会先分发给Controller类,Controller类会根据URL调用不同的方法,而如果这个请求是要对数据库进行操作的,那么,该方法就会初始化一个SessionFactory对象,然后调用它的方法,得到自己想要的User 返回值/对数据库内容进行更新。

而对于SessionFactory来说,它会调用上面的IUserOperation接口中的方法,然后由User.xml中配置的具体方法去实现。

package net.use.mapper;import java.io.IOException;import java.io.Reader;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import net.use.info.User;import net.use.inter.IUserOperation;public class SessionFactory {private static SqlSessionFactory sqlSessionFactory;private static Reader reader;static {try {reader = Resources.getResourceAsReader("Configuration.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);} catch (IOException e) {e.printStackTrace();}}public static SqlSessionFactory getSession() {return sqlSessionFactory;}public User getUser(String name,String pwd){SqlSession session = sqlSessionFactory.openSession();User user = new User();try {//User user = (User) session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID",1);IUserOperation userOperation=session.getMapper(IUserOperation.class);List<User> users = userOperation.selectUsers(name, pwd);if(users.size()==0) {System.out.println("用户不存在");}else if(users.size()==1){System.out.println("用户存在,信息如下:"+users.get(0).getId()+","+users.get(0).getName()+","+users.get(0).getAge()+","+users.get(0).getAddress()+","+users.get(0).getPwd());user = users.get(0);}else {System.out.println("数据库出错!发现重复的用户信息!");}}finally {session.close();}return user;}/*** 测试增加,增加后,必须提交事务,否则不会写入到数据库. * */public void addUser(User user) {SqlSession session = sqlSessionFactory.openSession();try {IUserOperation userOperation = session.getMapper(IUserOperation.class);userOperation.addUser(user);session.commit();System.out.println("当前添加的用户的id为:"+user.getId());}finally {session.close();}}public void deleteUser(String name,String pwd) {SqlSession session = sqlSessionFactory.openSession();try {IUserOperation userOperation = session.getMapper(IUserOperation.class);userOperation.deleteUser(name,pwd);System.out.println("已从数据库删除该用户");session.commit();}finally {session.close();}}//update,first to get the user,then change,then commitpublic void updateUser(User user) {SqlSession session = sqlSessionFactory.openSession();try {IUserOperation userOperation = session.getMapper(IUserOperation.class);userOperation.updateUser(user);System.out.println("已从数据库更新该用户信息");session.commit();}finally {session.close();}}public User findUserByID(int id) {SqlSession session = sqlSessionFactory.openSession();try {IUserOperation userOperation = session.getMapper(IUserOperation.class);User user=userOperation.findUserByID(id);System.out.println("用户存在,信息如下:"+user.getId()+","+user.getName()+","+user.getAge()+","+user.getAddress()+","+user.getPwd());session.commit();return user;}finally {session.close();}}}

三、JSP界面

浏览器端界面,包括登录、注册、更新、删除四个基本的界面。其中主要是JSP界面,包含了少量的js方法。

login

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title>Login</title>      <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">     <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>   <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script></head><body>  <div class="container">    <div class="row">        <div class="col-md-8 col-md-offset-2">            <div class="panel panel-default">                <div class="panel-heading text-center">                    <h2>Login</h2>                </div>                <div class="panel-body" style="padding-top: 40px;">                    <form class="form-horizontal" role="form" method="POST" action="login">                        <input type="hidden" name="_token" value="U6oWdxyOCmls99JDRAJ5HUpHphpMpVOmeNmrElz9">                        <div class="form-group">                            <label for="name" class="col-md-4 control-label">User name</label>                            <div class="col-md-6">                                <input id="username" type="text" class="form-control" name="name" value="" required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="password" class="col-md-4 control-label">Password</label>                            <div class="col-md-6">                                <input id="password" type="password" class="form-control" name="pwd" required >                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-6 col-md-offset-4">                                <div class="checkbox">                                    <label>                                        <input type="checkbox" name="remember"> Remember Me                                    </label>                                </div>                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-8 col-md-offset-4">                                <button type="submit" class="btn btn-primary">                                   Login                                </button>                                <a class="btn btn-link" href="http://localhost:8080/Spring_Mybatis/toRegister">                                    Create new Account?                                </a>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div></div></body></html>

register

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title>Register</title>      <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">     <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>   <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>   <!-- insert jquery validate --><script src="https://cdn.bootcss.com/jquery-validate/1.17.0/jquery.validate.js"></script>   <script>     function validateForm(){     var res = check_validate1(document.forms["reForm"]["age"]);     if(res==false){     alert("age must be a number!");     document.forms["reForm"]["age"].value="";     //$("#age").focus();     return false;     }     return true;     }        </script></head><body><div class="container">    <div class="row">        <div class="col-md-8 col-md-offset-2">            <div class="panel panel-default">                <div class="panel-heading text-center">                    <h2>Create New Account</h2>                </div>                <div class="panel-body">                    <form id="reForm" class="form-horizontal" role="form" method="POST" action="register">                        <input type="hidden" name="_token" value="QFe0UARw5ThQWOQTtEetutiShrDpBZbCQBd87ypf">                        <div class="form-group">                            <label for="name" class="col-md-4 control-label">Name</label>                            <div class="col-md-6">                                <input id="name" type="text" class="form-control" name="name" value="" required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="age" class="col-md-4 control-label">Age</label>                            <div class="col-md-6">                                <input id="age" type="text" class="form-control" name="age" value="" required>                            </div>                        </div>                        <div class="form-group">                            <label for="address" class="col-md-4 control-label">Address</label>                            <div class="col-md-6">                                <input id="address" type="text" class="form-control" name="address" value="" required>                            </div>                        </div>                        <div class="form-group">                            <label for="password" class="col-md-4 control-label">Password</label>                            <div class="col-md-6">                                <input id="pwd" type="password" class="form-control" name="pwd" required>                            </div>                        </div>                        <div class="form-group">                            <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>                            <div class="col-md-6">                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>                            </div>                        </div>                        <div class="form-group">                            <label for="password-confirm" class="col-md-4 control-label"></label>                            <div class="col-md-6">                                <div class="g-recaptcha" data-sitekey="6Lc--SkUAAAAAFpxJNUtEhde4ACQlQySrjtL4rO9"></div>                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-6 col-md-offset-4">                                <a href="http://localhost:8080/Spring_Mybatis/toLogin" class="btn btn-primary">                                        Cancel                                       </a>                                                                        <button type="submit" class="btn btn-primary">                                        Register                                      </button>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div></div></body></html>

detail

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <title>Detail</title>   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">        <!-- insert jquery --><script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><!-- insert jquery validate --><script src="https://cdn.bootcss.com/jquery-validate/1.17.0/jquery.validate.js"></script><script>  function reFunction(){  var name=document.getElementById("name").value;  if(name==""){  alert("用户为空");  }else{  var form=document.getElementById("form");  form.submit();  alert("Update success!");  }  }    $(document).ready(function(){    if( (${user.id}) =="" ){    alert("用户名或密码错误,请重新输入!");    window.history.back(-1);   }  });</script></head><body><nav class="navbar navbar-default" role="navigation"><div class="container-fluid">     <div class="navbar-header">        <a class="navbar-brand" href="#">测试</a>    </div>    <div>        <!--向右对齐-->        <ul class="nav navbar-nav navbar-right">            <li class="dropdown">                <a href="#" class="dropdown-toggle" data-toggle="dropdown">                    ${user.name}<b class="caret"></b>                </a>                <ul class="dropdown-menu">                    <li><a href="http://localhost:8080/Spring_Mybatis/toLogin">Sign out</a></li>                </ul>            </li>        </ul>    </div></div></nav><div class="container">    <div class="row">        <div class="col-md-8 col-md-offset-2">            <div class="panel panel-default">                <div class="panel-heading text-center">                    <h2>User Info</h2>                </div>                <div class="panel-body">                    <form id ="form" class="form-horizontal" role="form" method="POST" action="update">                        <div class="form-group">                            <label for="id" class="col-md-4 control-label">Id</label>                            <div class="col-md-6">                                <input id="id" type="text" class="form-control" name="id" disabled="true" value="" placeholder="${user.id}"  required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="name" class="col-md-4 control-label">Name</label>                            <div class="col-md-6">                                <input id="name" type="text" class="form-control" name="name" disabled="true" value="" placeholder="${user.name}" required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="age" class="col-md-4 control-label">Age</label>                            <div class="col-md-6">                                <input id="age" type="text" class="form-control" name="age" value="" disabled="true" placeholder="${user.age}"required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="address" class="col-md-4 control-label">Address</label>                            <div class="col-md-6">                                <input id="address" type="text" class="form-control" name="address" value="" disabled="true" placeholder="${user.address}" required>                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-6 col-md-offset-4">                                <a href="http://localhost:8080/Spring_Mybatis/toUpdate?id=${user.id}&name=${user.name}"  class="btn btn-primary">Update User</a>                                                                       <a href="http://localhost:8080/Spring_Mybatis/toDelete?id=${user.id}&name=${user.name}" class="btn btn-primary">Delete User</a>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div></div></body></html>

Delete
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">      <title>Delete 测试</title>      <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">     <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>   <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>      <script type="text/javascript">        function GetQueryString(name)     {          var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");          var r = window.location.search.substr(1).match(reg);          if(r!=null)          return  unescape(r[2]);           return null;     }     $(document).ready(function(){        //$("#sonpage_title").html(decodeURI(getQueryStringByName('name')));    $("#id").val(GetQueryString("id"));     $("#name").val(GetQueryString("name"));     $("#username").val(GetQueryString("name"));     //document.findElementById("username").innerHTML=GetQueryString("name");      });          function returnLast(){     window.history.go(-1);          }   </script></head><body><nav class="navbar navbar-default" role="navigation"><div class="container-fluid">     <div class="navbar-header">        <a class="navbar-brand" href="#">测试</a>    </div>    <div>        <!--向右对齐-->        <ul class="nav navbar-nav navbar-right">            <li class="dropdown">                <a id="username" href="#" class="dropdown-toggle" data-toggle="dropdown">                    <b class="caret"></b>                </a>                <ul class="dropdown-menu">                    <li><a href="http://localhost:8080/Spring_Mybatis/toLogin">Sign out</a></li>                </ul>            </li>        </ul>    </div></div></nav><div class="container">    <div class="row">        <div class="col-md-8 col-md-offset-2">            <div class="panel panel-default">                <div class="panel-heading text-center">                    <h2>Delete Your Account</h2>                </div>                <div class="panel-body">                    <form class="form-horizontal" role="form" method="POST" action="delete">                        <input type="hidden" name="_token" value="QFe0UARw5ThQWOQTtEetutiShrDpBZbCQBd87ypf">                                               <div class="form-group">                            <label for="id" class="col-md-4 control-label">Id</label>                            <div class="col-md-6">                                <input id="id" type="text" class="form-control" name="id" readonly="true">                            </div>                        </div>                        <div class="form-group">                            <label for="name" class="col-md-4 control-label">Name</label>                            <div class="col-md-6">                                <input id="name" type="text" class="form-control" name="name" readonly="true">                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-6 col-md-offset-4">                                <button type="button" class="btn btn-primary" onclick="returnLast()">                                       Cancel                                     </button>                                                                  <button type="submit" class="btn btn-primary">                                        Confirm to delete the user?                                  </button>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div></div></body></html>

update

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">      <title>Update</title>      <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">     <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>   <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>      <script type="text/javascript">     function GetQueryString(name)     {          var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");          var r = window.location.search.substr(1).match(reg);          if(r!=null)          return  unescape(r[2]);           return null;     }     $(document).ready(function(){    $("#id").val(GetQueryString("id"));     $("#username").val(GetQueryString("name"));     });          function returnLast(){     window.history.back(-1);     }        </script></head><body><nav class="navbar navbar-default" role="navigation"><div class="container-fluid">     <div class="navbar-header">        <a class="navbar-brand" href="#">测试</a>    </div>    <div>        <!--向右对齐-->        <ul class="nav navbar-nav navbar-right">            <li class="dropdown">                <a id="username" href="#" class="dropdown-toggle" data-toggle="dropdown">                    <b class="caret"></b>                </a>                <ul class="dropdown-menu">                    <li><a href="http://localhost:8080/Spring_Mybatis/toLogin">Sign out</a></li>                </ul>            </li>        </ul>    </div></div></nav><div class="container">    <div class="row">        <div class="col-md-8 col-md-offset-2">            <div class="panel panel-default">                <div class="panel-heading text-center">                    <h2>Update Your Account</h2>                </div>                <div class="panel-body">                    <form class="form-horizontal" role="form" method="POST" action="update">                        <input type="hidden" name="_token" value="QFe0UARw5ThQWOQTtEetutiShrDpBZbCQBd87ypf">                                               <div class="form-group">                            <label for="id" class="col-md-4 control-label">Id</label>                            <div class="col-md-6">                                <input id="id" type="text" class="form-control" name="id" readonly="true">                            </div>                        </div>                        <div class="form-group">                            <label for="name" class="col-md-4 control-label">Name</label>                            <div class="col-md-6">                                <input id="name" type="text" class="form-control" name="name" value="" required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="age" class="col-md-4 control-label">Age</label>                            <div class="col-md-6">                                <input id="age" type="text" class="form-control" name="age" value="" required autofocus>                            </div>                        </div>                        <div class="form-group">                            <label for="address" class="col-md-4 control-label">Address</label>                            <div class="col-md-6">                                <input id="address" type="text" class="form-control" name="address" value=""  required>                            </div>                        </div>                        <div class="form-group">                            <label for="password" class="col-md-4 control-label">Password</label>                            <div class="col-md-6">                                <input id="pwd" type="password" class="form-control" name="pwd"  required>                            </div>                        </div>                                                <div class="form-group">                            <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>                            <div class="col-md-6">                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>                            </div>                        </div>                        <div class="form-group">                            <label for="password-confirm" class="col-md-4 control-label"></label>                            <div class="col-md-6">                                <div class="g-recaptcha" data-sitekey="6Lc--SkUAAAAAFpxJNUtEhde4ACQlQySrjtL4rO9"></div>                            </div>                        </div>                        <div class="form-group">                            <div class="col-md-6 col-md-offset-4">                                <button type="button" class="btn btn-primary" onclick="returnLast()">                                        Cancel                                       </button>                                                                        <button type="submit" class="btn btn-primary">                                         update                                     </button>                            </div>                        </div>                    </form>                </div>            </div>        </div>    </div></div></body></html>

ok!

所有的代码已经齐全了。


阅读全文
1 0
原创粉丝点击