SpringMVC学习笔记05-----------数据处理

简介

SpringMVC为我们提供了十分方便的数据处理方案,大大提升了我们开发的效率,下面就让我们一起见识一下SpringMVC数据处理的强大之处吧!

处理提交数据

1. 提交的参数名称与控制器处理方法的参数名一致
提交数据 : http://localhost:8080/data/t1?name=张三
处理方法:

@RequestMapping("/t1")
public String test01(String name, Model model) {
    System.out.println(name);
    model.addAttribute("msg", name);
    return "hello";
}

后台输出 张三。
这种情况提交的参数可以直接在后台获取。

2. 提交的参数名称与控制器处理方法的参数名不一致时
提交数据 : http://localhost:8080/data/t1?username=张三
处理方法:

@RequestMapping("/t1")
public String test01(@RequestParam("username") String name, Model model)     {
   System.out.println(name);
   model.addAttribute("msg", name);
   return "hello";
}

后台输出:张三
这种情况需要借助@RequestParam()注解

3. 提交的是一个对象时
创建pojo类:

package com.xdw.pojo;

import java.io.Serializable;

public class User implements Serializable {

  private Integer id;

  private String name;

  private Integer age;

  public Integer getId() {
      return id;
  }

  public void setId(Integer id) {
      this.id = id;
  }

  public String getName() {
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  @Override
  public String toString() {
      return "User{" +
              "id=" + id +
              ", name='" + name + '\'' +
              ", age=" + age +
              '}';
  }

  public Integer getAge() {
      return age;
  }

  public void setAge(Integer age) {
      this.age = age;
  }
}

处理方法:

    @RequestMapping("/t2")
    public String test02(User user,  Model model) {
        System.out.println(user.toString());
        model.addAttribute("msg", user.toString());
        return "hello";
    }

请求:http://localhost:8080/data/t2?id=1&name=张三&age=1
后台输出: User{id=1, name='张三', age=1}

当传递的对象是一个参数时,需要保证url中的参数名与pojo对象的属性一致,这样SpringMVC就可以直接获取数据了!

数据显示到前端

通过ModelAndView

@RequestMapping("/t3")
public ModelAndView test03() {
    ModelAndView mv = new ModelAndView();
    mv.setViewName("hello");
    mv.addObject("msg", "ModelAndView");
    return mv;
}

通过ModelMap

@RequestMapping("/t4")
public String test04(ModelMap modelMap) {
    modelMap.addAttribute("msg", "测试");
    return "hello";
}

通过model

@RequestMapping("/t5")
public String test05(Model model) {
  model.addAttribute("msg", "model");
  return "hello";
}

三种方式的对比

就对于新手而言简单来说使用区别就是:

Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;

ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;

ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。

请使用80%的时间打好扎实的基础,剩下18%的时间研究框架,2%的时间去学点英文,框架的官方文档永远是最好的教程。

posted @   卧龙戏公瑾  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示