Java获取请求参数

1.简单参数接收

前端请求参数与Controller接受变量名一致

如果参数名不一致,接受不成功。
可以用@RequestParam指定参数名,可以用username接收(不推荐)。
required = true,表示参数必须传递,如果不传递会报错,false代表可选的参数,可以不传递

在这里插入图片描述

    @RequestMapping("/simplePara")public String simplePara(@RequestParam(name="name",required = false) String username, Integer age){System.out.println(username+":"+age);return "OK";}

## 2.实体参数接收

请求参数名与形参对象属性名相同
在这里插入图片描述

    @RequestMapping("/simplePojo")public String simplePojo(User user){System.out.println(user);return "OK";}

3.复杂实体参数接收

在这里插入图片描述

    @RequestMapping("/complexPojo")public String complexPojo(User user){System.out.println(user);return "OK";}

4.数组参数接收

在这里插入图片描述

    @RequestMapping("/arrayPara")public String arrayPara(String[] hobby){System.out.println(Arrays.toString(hobby));return "OK";}

5.集合接收

  • 请求参数名hobby与 集合变量名相同hobby
  • 加上@RequestParam
    在这里插入图片描述```java
    @RequestMapping(“/listPara”)
    public String listPara(@RequestParam List hobby){
    System.out.println(hobby);
    return “OK”;
    }
    ``

6.日期参数接收

  • 后端要使用@DateTimeFormat注解标记参数
  • 后端接收要指定接收日期的格式(与前端传递的格式一样):yyyy-MM-dd HH:mm:ss
    在这里插入图片描述
    @RequestMapping("/dataParam")public String dataParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "OK";}

7.Json格式参数接收

  • 后端通过实体对象接收数据
  • 请求参数需要用@RequestBody 标记
   @RequestMapping("/jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "OK";}

在这里插入图片描述

8.路径参数,参数已经是url的一部分\

在这里插入图片描述

  • {id}是个路径参数
  • 参数需要用@PathVariable 标记
    @RequestMapping("/pathParam/{id}")public String pathParam(@PathVariable Integer id){System.out.println(id);return "OK";}//多个路径参数@RequestMapping("/pathParam2/{id}/{name}")public String pathParam(@PathVariable Integer id,@PathVariable String name){System.out.println(id + ":" + name);return "OK";}

总结

在这里插入图片描述

常用注解

在这里插入图片描述

每个接口返回的数据有各种类型(字符串,数组,Json),不规范

可以用Result封装返回的数据

  • 响应字符串请求
    在这里插入图片描述

  • 响应json请求
    在这里插入图片描述

  • 响应集合请求

  • 在这里插入图片描述

public class Result {private Integer code ;//1 成功 , 0 失败private String msg; //提示信息private Object data; //数据 datapublic Result() {}public Result(Integer code, String msg, Object data) {this.code = code;this.msg = msg;this.data = data;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public static Result success(Object data){return new Result(1, "success", data);}public static Result success(){return new Result(1, "success", null);}public static Result error(String msg){return new Result(0, msg, null);}@Overridepublic String toString() {return "Result{" +"code=" + code +", msg='" + msg + '\'' +", data=" + data +'}';}
}

请求处理代码


@RestController
public class ResponseController {//统一相应结果@RequestMapping("/hello")public Result hello(){System.out.println("Hello World ~");//return new Result(1,"success","Hello World ~");return Result.success("Hello World ~");}@RequestMapping("/getAddr")public Result getAddr(){Address addr = new Address();addr.setProvince("广东");addr.setCity("深圳");return Result.success(addr);}@RequestMapping("/listAddr")public Result listAddr(){List<Address> list = new ArrayList<>();Address addr = new Address();addr.setProvince("广东");addr.setCity("深圳");Address addr2 = new Address();addr2.setProvince("陕西");addr2.setCity("西安");list.add(addr);list.add(addr2);return Result.success(list);}
}

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

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

相关文章

std文件中写入内容基础

在C中&#xff0c;使用标准库中的std::fstream类可以进行文件操作&#xff0c;包括文件的读取和写入。下面是一些常见的文件写入模式及其介绍&#xff1a; 文件写入模式 std::ofstream (Output File Stream) 专门用于文件写入的流。默认模式下&#xff0c;如果文件不存在&…

连通民心,服务无界:政务热线系统打造便捷政务新时代

一.引言 在21世纪的数字浪潮中&#xff0c;政府服务模式正经历着前所未有的变革。随着信息技术的飞速发展&#xff0c;民众对于政务服务的期待已不再局限于传统的面对面交流&#xff0c;而是更加倾向于高效、便捷、全天候的服务体验。在此背景下&#xff0c;政务热线系统应运而…

深入剖析Tomcat(八) 载入器与打破双亲委派机制的自定义类加载器

写这篇文章让我头大了好几天&#xff0c;书中描述的内容倒是不多&#xff0c;可能也是那会Tomcat的现状。如今Tomcat发展了好多代&#xff0c;加上springboot的广泛应用&#xff0c;导致现在的类加载的步骤和Tomcat资料中描述的大相径庭。可能也是由于微服务的发展&#xff0c;…

环形数组介绍要点和难点具体应用实例和代码解析

环形数组(或称为循环数组、圆形数组)是一种逻辑结构,其中数组的末尾和开头在逻辑上是相连的,从而形成一个环或圈。在实际的物理存储中,环形数组通常是一个普通的线性数组,但在访问和操作时采用特定的逻辑来处理边界条件,使得元素可以从数组的末尾“循环”到开头,或者从…

基于 Spring Boot 博客系统开发(十)

基于 Spring Boot 博客系统开发&#xff08;十&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;九&#xff09;&#x1f…

MySQL 开源到商业(四):MySQL 成了烫手山芋

前文提到&#xff0c;Monty 得知 Oracle 收购 Sun 的提案得到了美国政府的支持后&#xff0c;发动社区用户向欧盟委员会请愿&#xff0c;希望通过反垄断的名义让 Oracle 知难而退&#xff0c;进而实现剥离 MySQL 的目的。而 Oracle 为了得到欧盟委员会的许可&#xff0c;迅速提…

Golang | Leetcode Golang题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; func numDecodings(s string) int {n : len(s)// a f[i-2], b f[i-1], c f[i]a, b, c : 0, 1, 0for i : 1; i < n; i {c 0if s[i-1] ! 0 {c b}if i > 1 && s[i-2] ! 0 && ((s[i-2]-0)*10(s[i-1]-0) < 26) {c…

Navicat 干货 | 探索 PostgreSQL 中不同类型的约束

PostgreSQL 的一个重要特性之一是能够对数据实施各种约束&#xff0c;以确保数据完整性和可靠性。今天的文章中&#xff0c;我们将概述 PostgreSQL 的各种约束类型并结合免费的 "dvdrental" 示例数据库 中的例子探索他们的使用方法。 1. 检查约束&#xff1a; 检查…

颜色的表示和还原(一)

这篇文章主要提炼于ICCV 2019 Tutorial: Understanding Color and the In-Camera Image Processing Pipeline for Computer Vision。里面深入浅出地讲解了很多ISP中的基础知识&#xff0c;这里主要对颜色相关的部分做一点总结。 假设不成立了 相机经常被简单地看作是衡量光线…

STM32学习计划

前言&#xff1a; 这里先记录下STM32的学习计划。 2024/05/08 今天我正在学习的是正点原子的I.MX6ULL APLHA/Mini 开发板的 Linux 之ARM裸机第二期开发的视频教程&#xff0c;会用正点原子的I.MX6ULL开发板学习第二期ARM裸机开发的教程&#xff0c;然后是学习完正点原子的I.M…

Mybatis基础操作-删除

Mybatis基础操作-删除 删除 package com.itheima.mapper;import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper;Mapper //在运行时&#xff0c;会自动生成该接口的实现类对象&#xff08;代理对象&#xff09;&#xff0c;并且将该对象…

QT:QML与C++交互

目录 一.介绍 二.pro文件添加模块 三.h文件 四.cpp文件 五.注册 六.调用 七.展示效果 八.代码 1.qmlandc.h 2.qmlandc.cpp 3.main.cpp 4.qml 一.介绍 在 Qt 中&#xff0c;QML 与 C 交互是非常重要的&#xff0c;因为它允许开发人员充分利用 QML 和 C 各自的优势&…

我21岁玩“撸货”,被骗1000多万

最近&#xff0c;撸货业界内发生了一些颇受瞩目的事件。 在郑州&#xff0c;数码档口下面抢手团长跑路失联&#xff0c;涉及金额几百万&#xff0c;在南京&#xff0c;一家知名的电商平台下的收货站点突然失联&#xff0c;涉及金额高达一千多万&#xff0c;令众多交易者震惊不已…

用scp将文件夹从一个服务器备份到另一个服务器

用scp将文件夹从一个服务器备份到另一个服务器 问题描述解决办法 问题描述 公式服务器要回收了&#xff0c;如何将数据备份到另一个服务器上。 解决办法 代码如下 scp -P 32660 -r /path/of/the/original/file username10.258.36.187:/path/of/the/target/filescp -P 目标…

YOLOv8改进 | 图像修复 | 适用多种复杂场景的全能图像修复网络AirNet助力YOLOv8检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是一种适用多种复杂场景的全能图像修复网络AirNet&#xff0c;其由对比基降解编码器&#xff08;CBDE&#xff09;和降解引导修复网络&#xff08;DGRN&#xff09;两个神经模块组成&#xff0c;能够在未知损坏类型和程度的情况下恢复受…

Java | Leetcode Java题解之第92题反转链表II

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode reverseBetween(ListNode head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode dummyNode new ListNode(-1);dummyNode.next head;ListNode pre dummyNode;for (int i 0; …

【SQL】SQL常见面试题总结(3)

目录 1、聚合函数1.1、SQL 类别高难度试卷得分的截断平均值&#xff08;较难&#xff09;1.2、统计作答次数1.3、得分不小于平均分的最低分 2、分组查询2.1、平均活跃天数和月活人数2.2、月总刷题数和日均刷题数2.3、未完成试卷数大于 1 的有效用户&#xff08;较难&#xff09…

蓝桥杯 EDA 组 历届国赛真题解析

一、2021年国赛真题 1.1 CN3767 太阳能充电电路 CN3767 是具有太阳能电池最大功率点跟踪功能的 4A&#xff0c;12V 铅酸电池充电管理集成电路。 最大功率点应指的是电池板的输出电压&#xff0c;跟踪电压其做保护。当然 CN3767 也可以直接使用直流充电&#xff0c;具体可以阅读…

ROS 2边学边练(49)-- 生成URDF文件

前言 大多数机器人学家都在团队中工作&#xff0c;这些团队中往往包括机械工程师&#xff0c;他们负责开发机器人的CAD模型。与手动创建URDF&#xff08;统一机器人描述格式&#xff09;文件不同&#xff0c;可以从许多不同的CAD和建模程序中导出URDF模型。这些导出工具通常…

[POJ-1321]棋盘问题

题源:POJ-1321 深搜板子题&#xff0c;非常基础&#xff0c;难度不大 思路1&#xff1a;广搜行 深搜列 #include<iostream> #include<cstring> using namespace std; const int MAX9; int a,b,ans; char m[MAX][MAX]; //深搜列&#xff0c;广搜行 bool h[MAX]; v…