初学SpringMVC之接收请求参数及数据回显

pom.xml 文件导入 lombok 的依赖

XML 复制代码
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.34</version>
        </dependency>

@Controller 表示这是一个控制器

@RequestParam 表示从前端接收

将返回的结果传递给前端一般用 Model

java 复制代码
package com.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@RequestMapping("/user")
public class UserController {
    //localhost:8080/user/test?name=xx
    @GetMapping("/test")
    public String test(@RequestParam("name") String name, Model model){

        //1.接收前端参数
        System.out.println(name);

        //2.将返回的结果传递给前端
        model.addAttribute("msg",name);

        //3.视图跳转
        return "test"; //test.jsp

    }
}

@AllArgsConstructor 有参构造器

@NoArgsConstructor 无参构造器

(需要先导入 lombok 的 jar 包才能引用)

java 复制代码
package com.demo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor //有参构造器
@NoArgsConstructor //无参构造器
public class User {
    private String name;
    private int age;
}

接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用

传递的参数必须要和对象接收的参数字段保持一致

java 复制代码
package com.demo.controller;

import com.demo.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {

    /*
    1.接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用
    2.假设传递的是一个对象User,匹配User对象中的字段名
     */
    @GetMapping("/test2")
    public String test2(User user){
        System.out.println(user);
        return "test";
    }
}

比如地址栏输入 http:localhost:8080/user/test2?name=hh&age=18

(要根据自己创建的类来设置参数,上述用了 User 类,就用 User 类里的变量)

输出结果为:

数据显示到前端的方法:

  1. ModelAndView

先 new 一个 ModelAndView()

再通过 addObject 封装数据

最后 setViewName 设置返回的视图名字

  1. Model

方法括号里使用 Model 接口

通过 addAttribute 封装数据

最后返回给视图

  1. ModelMap

按 ctrl + h 查看树

ModelMap 继承了 LinkedHashMap,拥有它的全部功能

使用方法与 Model 类似

三者对比:

  1. Model 只有几个方法适用于存储数据

  2. ModelMap 除了实现自身方法,同时继承 LinkedHashMap 的方法和特性

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

相关推荐
程序猿乐锅25 分钟前
【计算机组成原理 | 第六章】中央处理器 CPU
java·开发语言
大模型丫丫26 分钟前
如何提升单体 Spring Boot 应用的并发数?
java·spring boot·后端
Terra.K32 分钟前
ThreadLocal解决一个线程里面跨层传递问题
java·开发语言·后端
泡海椒1 小时前
低代码规则开发:JQuick-Java声明式配置驱动开发落地教程
java·低代码·rxjava
weixin_440730501 小时前
socket解决多次输入问题-大数据接收问题-模块动态导入
java·开发语言·servlet
用户3126874877201 小时前
ReentrantLock 和 synchronized 到底选哪个?源码级对比与选型
java
计算机毕设定制辅导-无忧学长1 小时前
基于Spring Boot的玄幻小说个性化推荐平台设计与实现
java·vue.js·spring boot·后端·mysql·推荐算法
码路漫漫1 小时前
LRU 真的能解决日志按业务 Key 分文件的落地瓶颈吗?
java·后端
带刺的坐椅2 小时前
不只是 Token 流:Solon AI 4.1 的语义化聊天事件
java·stream·event·solon-ai
延凡科技2 小时前
建筑节能新视角:智慧冷站的数字化实践
java·人工智能·能源·暖通