- 一、为什么使用它
- 二、如何使用
- 1、默认数据类型
- ①、导包
- ②、在web.xml中配置
- ③、创建springmvc配置文件
- ④、创建controller类
- ⑤、创建success.jsp页面
- ⑥、启动tomcat服务器
- 2、简单数据类型
- 修改UserController类
- 3、绑定pojo类型
- ①、在pojo中创建User实体类
- ②、修改Usercontroller类
- ③、创建register.jsp页面
- ④、启动Tomcat服务器
- 4、包装pojo
- ①、创建班级实体类和学生实体类
- ②、创建StudentController
- ③、student.jsp
- ④、启动Tomcat服务器
- 参数名的问题的分析!
- 5、复杂数据
- 简单的使用数组来批量删除用户信息的例子
- ①、course.jsp
- ②、CourseController类
- ③、启动Tomcat服务器
- 用集合来修改多个相同类型的信息
- ①、创建UserVo类
- ②、修改UserController类
- ③、useredit.jsp
- ④、启动Tmocat服务器
在执行程序的时候,SpringMVC根据客户端请求参数的不同将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中,这种将请求消息数据与后台方法参数建立连接的过程就是SpringMVC中的数据绑定。
二、如何使用 1、默认数据类型当前端请求的参数比较简单的时候,可以在后台方法的形参中直接使用SpringMVC提供的默认参数类型进行数据绑定
常用的默认参数类型如下:
- HttpServletRequest:通过request对象获取请求信息
- HttpServletResponse:通过response对象处理响应信息
- HttpSession:通过session对象得到session中存储的对象
- Model/ModelMap:Model是一个接口,Model是一个接口实现,作用是将Model数据填充到request域
简单的使用HttpServletRequest类型
①、导包②、在web.xml中配置org.springframework spring-webmvc 5.3.13 org.springframework spring-web 5.3.13 javax.servlet servlet-api 2.5 javax.servlet jstl 1.2
③、student.jspspringmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc-config.xml 1 springmvc / int stu_id = student.getStu_id(); String stu_name = student.getStu_name(); StudentClass stu_class = student.getStu_class(); String class_name = stu_class.getClass_name(); System.out.println("学生的学号是" + stu_id); System.out.println("学生的姓名是" + stu_name); System.out.println("学生的班级是" + class_name); return "success"; } } CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf8
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
学生查询
④、启动Tomcat服务器
后台控制台输出
- 如果查询条件参数是包装类的直接基本属性,参数名就直接用对应的属性名,如上述代码中的stu_id
- 如果查询条件参数是包装类中的pojo的子属性,参数名就必须为[对象.属性],其中对象要和包装类pojo中的对象属性名称一致,属性要和包装类pojo中的对象子属性一直,如上述代码的stu_class.class_name
在实际开发中,可能会遇到前端请求需要传递到后台一个或多个相同名称参数的情况,此时不适合采用简单数据绑定,可以采用绑定数组的方式
简单的使用数组来批量删除用户信息的例子 ①、course.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %>
课程列表
②、CourseController类
@Controller
public class CourseController {
//向课程页面跳转
@RequestMapping("toCourse")
public String toCourse() {
return "course";
}
//删除课程
@RequestMapping("deleteCourse")
public String deleteCourse(int[] ids) {
if (ids != null) {
for (int id:ids) {
System.out.println("删除了id为"+id+"的课程");
}
}else {
System.out.println("ids=null");
}
return "success";
}
}
③、启动Tomcat服务器
后台控制器的输出
@Data
public class UserVo {
private List users;
}
②、修改UserController类
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import pojo.User;
import pojo.UserVo;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
public class UserController {
//批量修改用户的方法
//向网页跳转到用户批量修改
@RequestMapping("toUserEdit")
public String toUserEdit(){
return "useredit";
}
//接受批量修改用户的方法
@RequestMapping("editUsers")
public String editUser(UserVo userVo) {
List users = userVo.getUsers();
for (User user:users) {
if (user.getId() != null) {
System.out.println("修改了id为"+user.getId()+"的用户名为"+user.getUsername());
}
}
return "success";
}
}
③、useredit.jsp
修改用户
④、启动Tmocat服务器
后端控制台输出:
这里可以发现,如果不勾选前面,就无法进行修改,只有勾选了才可以批量修改



