SpringMVC ----- SpringMVC的数据处理

前言

今天我们聊一聊关于url地址中的传递的参数是如何与我们后端的逻辑代码对应的。

1. 提交的参数名称和处理方法的参数名一致

由于MVC底层具有良好的匹配规范,我们不必再像JavaWeb那样通过request.getParameter(“xxx”) 获取前端传递的参数了,只要名字一致可以直接获取。
[1] 提交数据: http://localhost:8080/hello?name=gs
[2] 处理方法
这里的name可以直接获取url中参数传递的值

@RequestMapping("/hello")
public String hello(String name){
    System.out.println(name);
    return "hello";
}

控制台上可以输出: gs

2. 提交的参数的名称和处理方法的参数名不一致

通过@RequestParam指定对应的参数名称
[1] 提交数据:http://localhost:8080/hello?username=gs
[2] 处理方法(通过@RequestParam映射相应的参数名)

//@RequestParam("username"): username提交的域的名称
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name){
    System.out.println(name);
    return "hello";
}

控制台上可以输出: gs

3. 提交的是一个对象

由于这里不是单一的数据类型,要求我们表单提交的数据封装成一个对象,且表单项的名字要和对象的属性名一致
[1] 编写实体类 (这里省略了get,set方法)
User.class

package com.gs.pojo;
public class User {

    private int id;
    private String name;
    private int age;
}

[2] 提交的数据为:http://localhost:8080/user/t2?id=1&name=gs&age=18
[3] 处理的方法
通过一个对象封装前端传递的参数

@GetMapping("/t2")
 public String test2(User user){

     System.out.println(user);
     //1.视图跳转
     return "test";
 }

控制台输出的数据
在这里插入图片描述
聊完后台接收前端的数据后,我们再谈谈后台如何传递数据给前端

4. 数据显示到前端

共有三种方式:
第一种通过ModelAndView (这个不仅可以封装数据,还可以设置视图名。在实现接口的方式中较为常用)
第二种通过ModelMap (它继承了LinkedHashMap,除了传递数据后,同时拥有LinkedHashMap的方法和属性)
第三种通过Model (这是ModelMap 的精简类型,它只负责传递数据,操作简单,使用广泛)
在这里插入图片描述
在这里插入图片描述
简单对比:
Model :只有寥寥几个方法只适合用于存储数据,简化了新手对Model对象的操作和理解
ModelMap: 继承了LinkedHashMap,除了实现自身的一些方法,同时拥有LinkedHashMap的方法和属性
ModelAndView: 可以在存储数据的同时,设置返回的逻辑视图,进行控制层的跳转 (一般使用在控制层是实现接口的情况下,但现在的开发中大多使用注解类型,所以这个比较少用,我们一般都直接使用Model即可)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值