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

pom.xml 文件导入 lombok 的依赖

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency>

@Controller 表示这是一个控制器

@RequestParam 表示从前端接收

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

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 包才能引用)

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;
}

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

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

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 设置返回的视图名字

2. Model

方法括号里使用 Model 接口

通过 addAttribute 封装数据

最后返回给视图

3. ModelMap

按 ctrl + h 查看树

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

使用方法与 Model 类似

三者对比:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

夏日智启:我的Datawhale AI夏令营探索之旅

前言 最近几年&#xff0c;AI&#xff08;人工智能&#xff09;的发展呈现出了前所未有的迅猛势头&#xff0c;其影响力和应用范围不断扩大&#xff0c;深刻地改变着我们的生活、工作和社会结构。尤其是AI大模型技术&#xff0c;国内外可谓是“百模大战”&#xff0c;百舸争流…

github恢复码怎么备份

https://docs.github.com/zh/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods

最强文本编辑器 VIM 指令大全

Vim 是从 Vi 编辑器发展出来的一款极其强大的文本编辑器&#xff0c;它保留了 Vi 编辑器的所有功能&#xff0c;并添加了许多新特性。Vim 具有代码补全、语法高亮、错误跳转、批量化处理等编辑功能&#xff0c;还支持异常丰富的插件扩展&#xff0c;且整个编辑全程可通过键盘完…

谷歌插件之一键关闭同域名页面

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 谷歌插件之一键关闭同域名页面 前言项目结构mainfest.jsonbackgroud.js 项目实现效果展示展望 前…

13019.CUDA问题积累

文章目录 1 内存不断增长的问题1.1 主机从GPU拷贝内存1.1.1 htop 内存增长到一定阶段后&#xff0c;保持稳定 1.2 GPU拷贝到Host修改之后内存稳定无变化1.3 结论 2 主机与GPU数据拷贝方案2.1 cudaMemcpy 拷贝内存2.2 cudaMemcpyAsync 异步数据拷贝2.3 采用多线程拷贝技术2.3.1 …

群主必学!轻松Get如何解散微信群的技巧

作为一个微信群的群主&#xff0c;解散群聊可能是你需要掌握的重要技能之一。不管是因为群聊的目的已经达成&#xff0c;还是因为群成员过少或不活跃&#xff0c;了解如何解散微信群都能帮助你更好地管理你的群聊。 如何解散微信群&#xff1f;本文将为您提供一些简单易行的技…

代码随想录算法训练营第五十天| 739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II

739. 每日温度 题目链接&#xff1a; 739. 每日温度 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会 思路&#xff1a; 这道题需要找到下一个更大元素。 使用栈来存储未找到更高温度的下标&#xff0c;那么栈中的下标对应的温度从栈底到栈顶是递减的。这意味着&#xff…

Redis数据同步

文章简单介绍基于redis-shake的redis数据同步&#xff0c;该工具基于每个节点同步数据&#xff0c;即每个主节点需同步一次&#xff0c;才能完成整个redis集群的数据同步。 1、redis节点操作 ### 查看redis版本 ./bin/redis-server --version### 登录redis ./bin/redis-cli -…

改变Ubuntu的Tab没有缩进4格(Makefile)

1.vim里的Tab 用vi指令打开这个文件&#xff0c;没有的话就新创建一个 vi ~/.vimrc在打开的文件中输入以下两行 1 set tabstop42 set shiftwidth4 ~ Esc &#xff1a; x&#xff0c;保存并退出即可 资料来源&#xff1a; 2024年5月21日-vi/vim …

Linux Ubuntu MySQL环境安装

1. 更新软件源 首先&#xff0c;确保你的Ubuntu系统已经更新了软件源列表&#xff0c;以便能够下载到最新的软件包。打开终端并输入以下命令&#xff1a; sudo apt update 2. 安装MySQL服务器 打开终端并输入以下命令来安装MySQL服务器 sudo apt install mysql-server 在…

一个便捷的web截图库~【送源码】

随着时间的发展&#xff0c;前端开发的范围越来越广&#xff0c;能够实现的功能也越来越多&#xff0c;要实现的功能也五花八门&#xff0c;今天就给大家介绍一个web截图库,让前端也能实现截图功能—— js-web-screen-shot js-web-screen-shot js-web-screen-shot 是一个基于 …

嵌入式板级支持包(BSP)80道面试题及参考答案(3万字长文)

目录 解释什么是通用输入输出(GPIO)接口及其在BSP中的作用。 描述SPI接口的主要特点和用途。 说明IC总线协议的工作原理。 如何在BSP中配置一个UART接口? USB设备控制器在BSP中的初始化步骤是什么? 以太网接口如何在BSP中被支持? 什么是SDIO,它在哪些场景下会被使…

语言模型演进:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…

【接口设计】如何设计统一 RESTful 风格的数据接口

如何设计统一 RESTful 风格的数据接口 1.版本控制1.1 通过 URL1.2 通过自定义请求头1.3 通过 Accept 标头 2.过滤信息3.确定 HTTP 的方法4.确定 HTTP 的返回状态5.定义统一返回的格式 近年来&#xff0c;随着移动互联网的发展&#xff0c;各种类型的客户端层出不穷。如果不统一…

Mybatis-Plus最优化持久层开发

Mybatis-plus&#xff1a;最优化持久层开发 一&#xff1a;Mybatis-plus快速入门&#xff1a; 1.1&#xff1a;简介&#xff1a; Mybatis-plus&#xff08;简称MP&#xff09;是一个Mybatis的增强工具&#xff0c;在mybatis的基础上只做增强不做改变; 提高效率&#xff1b;自…

国漫推荐11

1.《元龙》 2.《恶魔法则》2023年9月29日 3.《三十六骑》 4.《山河剑心》 5.剑网3侠肝义胆沈剑心 《剑网3侠肝义胆沈剑心》 《剑网3侠肝义胆沈剑心 第二季》 《剑网3侠肝义胆沈剑心之长漂》&#xff08;番外&#xff09; 《剑网3侠肝义胆沈剑心 第三季》 6.《仙逆》东方玄幻…

Uniswap V2和Uniswap V3的区别

Uniswap V2和Uniswap V3是两个不同版本的去中心化交易协议&#xff0c;由Uniswap团队开发和维护。它们之间的主要区别包括以下几点&#xff1a; 资金池模型不同: Uniswap V2: 使用恒定乘积市场模型&#xff0c;也就是 x * y k。这意味着每个资金池中的资产的乘积保持不变&…

Transformer的模型的扩展与应用领域的拓展 - Transformer教程

在如今的人工智能领域&#xff0c;Transformer模型已经成为了众多研究和应用的焦点。从自然语言处理到计算机视觉&#xff0c;Transformer模型的扩展与应用领域的拓展带来了无数的可能性。今天&#xff0c;我们就来聊聊Transformer模型的扩展以及它在不同领域的广泛应用。 首先…

生产管理系统功能全拆解:哪些功能是企业真正需要的?

制造业的伙伴经常听到“生产管理”&#xff0c;但很多人可能只是模糊地知道它与工厂、生产线有关。那么&#xff0c;到底什么是生产管理呢&#xff1f;它的重要性又体现在哪里呢&#xff1f;接下来&#xff0c;我就以轻松的方式&#xff0c;带大家走进生产管理的世界&#xff0…

函数练习·二 基础题

# 【以下功能都使用函数封装】 # 提示: 涉及到要返回的题目,请使用return # 基础题 # 1.封装函数&#xff0c;计算从1到某个数以内所有奇数的和并返回 def fn1(n): return sum([i for i in range(1, n, 2)]) print(fn1(7)) # 2.封装函数&#xff0c;判断某个数是否是偶…