栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC的数据绑定

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC的数据绑定

文章目录
  • 一、为什么使用它
  • 二、如何使用
    • 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类型

①、导包

        
            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
        
②、在web.xml中配置


    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc-config.xml
        
        
        1
    
    
        springmvc
        /
    


    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf8
        
    
    
        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";
    }
}
③、student.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    学生查询



学生编号:
学生姓名:
所属班级:
④、启动Tomcat服务器



后台控制台输出

参数名的问题的分析!
  • 如果查询条件参数是包装类的直接基本属性,参数名就直接用对应的属性名,如上述代码中的stu_id
  • 如果查询条件参数是包装类中的pojo的子属性,参数名就必须为[对象.属性],其中对象要和包装类pojo中的对象属性名称一致,属性要和包装类pojo中的对象子属性一直,如上述代码的stu_class.class_name
5、复杂数据

在实际开发中,可能会遇到前端请求需要传递到后台一个或多个相同名称参数的情况,此时不适合采用简单数据绑定,可以采用绑定数组的方式

简单的使用数组来批量删除用户信息的例子 ①、course.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    
    课程列表



选择 课程名
java
mysql数据库
c
web程序开发
②、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服务器



后台控制器的输出

用集合来修改多个相同类型的信息 ①、创建UserVo类
@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服务器



后端控制台输出:

这里可以发现,如果不勾选前面,就无法进行修改,只有勾选了才可以批量修改

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号