当前位置: 首页 > news >正文

初学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 在存储数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 神经网络和安全结合:一种基于神经网络的智能攻击检测与防御系统;构建攻击行为预测模型
  • SD卡讲解
  • 347. 前 K 个高频元素(中等)
  • 【Spring Boot】Spring原理:Bean的作用域和生命周期
  • 【CT】LeetCode手撕—8. 字符串转换整数 (atoi)
  • 建立共享linux第三方软件仓库
  • STM32利用FreeRTOS实现4个led灯同时以不同的频率闪烁
  • C++:组合和继承的区别
  • LeetCode HOT100(三)滑动窗口
  • 【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)
  • 2022 RoboCom省赛题目解析
  • Git: fatal: cannot lock ref‘HEAD‘: Unable to create
  • SQL 存储过程
  • 短视频矩阵:批量发布的秘密揭秘
  • SpringBoot常见注解
  • __proto__ 和 prototype的关系
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【刷算法】从上往下打印二叉树
  • 【译】理解JavaScript:new 关键字
  • Akka系列(七):Actor持久化之Akka persistence
  • Android Studio:GIT提交项目到远程仓库
  • CentOS 7 修改主机名
  • es6(二):字符串的扩展
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 记录一下第一次使用npm
  • 解决iview多表头动态更改列元素发生的错误
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 入手阿里云新服务器的部署NODE
  • 算法---两个栈实现一个队列
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小李飞刀:SQL题目刷起来!
  • 一文看透浏览器架构
  • 用jQuery怎么做到前后端分离
  • 《码出高效》学习笔记与书中错误记录
  • #APPINVENTOR学习记录
  • #define,static,const,三种常量的区别
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #数据结构 笔记一
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (南京观海微电子)——示波器使用介绍
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (算法设计与分析)第一章算法概述-习题
  • (一)基于IDEA的JAVA基础1
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (转)3D模板阴影原理
  • (转)iOS字体
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET C# 操作Neo4j图数据库
  • .net dataexcel 脚本公式 函数源码
  • .NET下ASPX编程的几个小问题