如何做门户网站/电商推广和网络推广的策略

如何做门户网站,电商推广和网络推广的策略,wordpress 投票系统,可做推广的网站📌 博主简介: 💻 努力学习的 23 级科班生一枚 🚀🏠 博主主页 : 📎 灰阳阳📚 往期回顾 :Session和Cookie我不允许你不懂💬 每日一言: 「流水不争先&#xff0c…
  • 📌 博主简介: 💻 努力学习的 23 级科班生一枚 🚀
  • 🏠 博主主页 : 📎 @灰阳阳
  • 📚 往期回顾 :Session和Cookie我不允许你不懂
  • 💬 每日一言: 「流水不争先,争的是滔滔不绝」 🌊

碎碎念
作为一名学习spring框架的小白来说,项目实战无疑是学习成长速度最快的阶段之一。但这也不免会遇到很多折磨人的知识点让人防不胜防。比如参数绑定相关注解的使用:

  • @Param
  • @RequestParam
  • @RequestBody

用哪个?啥时候必须用?啥时候可以不用?把俺整的的一愣一愣的。
在这里插入图片描述
于是特意整理了这篇博客,目的是帮助大家快速理清这些注解的使用场景和区别,避开常见的坑点。


目录

  • 前言
  • 一、@RequestParam
    • 什么时候必须用@RequestParam?
    • 什么时候可以不用@RequestParam?
  • 二、@ModelAttribute
    • 作用
    • 使用@ModelAttribute时的注意点:
  • 三、@RequestBody
    • 什么时候必须用@RequestBody?
    • 什么时候可以不用@RequestBody?
  • 四、表格整理


前言

本博客将会详细讲解以下参数绑定相关注解的使用场景,说明它们之间的关系和区别,以及在项目开发中使用的规范

  • @RequestParam
  • @RequestBody
  • @@ModelAttribute

一、@RequestParam

@RequestParam专门用于获取请求URL中的参数,也就是问号?后面的参数。(HTML的form表单也适用)

例如下面的请求:

GET /search?name=Tom&age=25

对应的Controller方法:

@GetMapping("/search")
public String search(@RequestParam String name, @RequestParam Integer age) {return "搜索名字:" + name + ",年龄:" + age;
}

什么时候必须用@RequestParam?

  • 当方法参数名和请求参数名不一致时必须用

    @GetMapping("/search")
    public String search(@RequestParam("user_name") String name) {return name;
    }
    
  • 参数非必传时(可选)必须明确标注

    @GetMapping("/search")
    public String search(@RequestParam(required = false) String name) {return name;
    }
    

RequestParam(required = false)的意思是如果前端没有传递参数name,不会直接报错,而是赋值null。

什么时候可以不用@RequestParam?

  • 当方法参数名和请求URL参数名完全一致并且参数是必传时,可以省略:

    // URL: /search?name=Tom
    @GetMapping("/search")
    public String search(String name) {return name;
    }
    

二、@ModelAttribute

作用

@ModelAttribute`注解专门用于将请求参数(URL参数表单数据)绑定到一个Java对象中,尤其适合表单提交的场景或有多个参数需要绑定的情况。

例如请求:

GET /user?name=Tom&age=20

对应的Controller方法:

@GetMapping("/user")
public String getUser(@ModelAttribute User user) {return "姓名:" + user.getName() + ",年龄:" + user.getAge();
}

User类定义:

public class User {private String name;private Integer age;// getter和setter方法必须提供
}

使用@ModelAttribute时的注意点:

  • 对象的属性名称必须与请求中的参数名称保持一致,这样才能正确绑定。
  • 如果有多个参数,并且这些参数是Java对象的,那么推荐使用这个注解(前端发送请求非JSON等格式的情况下)

三、@RequestBody

@RequestBody用于接收HTTP请求体(Request Body)中的数据,常用于POST请求,通常是JSON格式的数据。

例如POST请求:

POST /user
Content-Type: application/json{"name": "Alice","age": 30
}

对应的Controller方法:

@PostMapping("/user")
public String createUser(@RequestBody User user) {return "用户姓名:" + user.getName() + ",年龄:" + user.getAge();
}

User类定义:

public class User {private String name;private Integer age;// getter和setter方法
}

什么时候必须用@RequestBody?

  • 前端发送JSON数据或XML数据等格式到后端时必须用
  • 当你需要整个请求体的数据绑定到一个Java对象时。

什么时候可以不用@RequestBody?

  • 当数据从URL参数(如GET请求)或表单数据中获取时,不需要也不能使用@RequestBody。
  • 对于表单提交,可以使用@ModelAttribute来代替:
@PostMapping("/submit")
public String submitForm(@ModelAttribute User user) {return user.getName();
}

四、表格整理

场景传参方式适用注解是否必须
单个或少量简单参数(如 ?name=TomURL参数或表单提交@RequestParam推荐✅
多个参数形成对象(如 ?name=Tom&age=20URL参数或表单提交@ModelAttribute推荐 ✅
JSON、XML数据请求体(POST)@RequestBody必须用

使用规范:
如果仍然觉得比较绕,最简单粗暴的方式就是全部都用上参数绑定。
因为不论参数是否一致,始终明确标注注解,可以提高代码可读性和可维护性。

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

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

相关文章

个人学习编程(3-22) leetcode刷题

连续子数组:(难) 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 需要理解的知识&a…

自由学习记录(46)

CG语法的数据类型 // uint : 无符号整数(32位) // int : 有符号整数(32位) // float : 单精度浮点数(32位),通常带后缀 f(如 1.0f) // half : 半精度浮…

(自用)yolo算法学习

1.难受中,看了教程过后无从下手啊 2.pycharm专业版成功就好 3.安装包时出先问题 (base) PS G:\pycharm\projects\yolo\yolov5> pip install opencv-python>4.1.1 Requirement already satisfied: opencv-python>4.1.1 in g:\anaconda\app\lib\site-packa…

【Azure 架构师学习笔记】- Azure Networking(1) -- Service Endpoint 和 Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Networking】系列。 前言 最近公司的安全部门在审计云环境安全性时经常提到service endpoint(SE)和priavate endpoint(PE)的术语,为此做了一些研究储备。 云…

【汽车开发工具选型指南】Jama Connect® for Automotive解决方案解析

本文来源jamasoftware.com,由Jama Software授权合作伙伴-龙智翻译整理。 Jama Connect for Automotive是什么? Jama Connect for Automotive 旨在为开发团队提供一个统一平台,用于构建安全关键型和网络安全关键型产品。提供满足行业标准和法…

同旺科技USB to SPI 适配器 ---- 指令循环发送功能

所需设备: 内附链接 1、同旺科技USB to SPI 适配器 1、周期性的指令一次输入,即可以使用 “单次发送” 功能,也可以使用 “循环发送” 功能,大大减轻发送指令的编辑效率; 2、 “单次发送” 功能,“发送数据…

尝试使用Tauri2+Django+React项目(2)

前言 尝试使用tauri2DjangoReact的项目-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146403103在前面笔者不知道怎么做,搞了半天 笔者看到官网,原来可以使用二进制文件,好好好 嵌入外部二进制文件 | Taurihttps://v2.taur…

Mysql配套测试之查询篇

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 条件查询简单测试&#xff1a; 1.查询英语成绩不及格的同学(<60) 2…

PicFlow:一个图片处理与上传工作流工具(图床上传工具)

自从学习搭建网站以来&#xff0c;我就把很多图片托管在七牛云等图床平台上。以前总是通过网页批量上传&#xff0c;需要登录并一步步跳转网页操作&#xff0c;久而久之就厌烦了&#xff0c;于是花了一天时间用 Python 写了一个工具 —— PicFlow&#xff0c;从名字可以看出&am…

Web纯前端实现在线打开编辑保存PPT幻灯片

很多项目中有时会需要在线打开PPT并编辑保存到服务器。猿大师办公助手可以完美调用本地office在线打开ppt文件&#xff0c;跟本地打开效果一样。还可以在线打开word、excel、pdf等文件&#xff0c;支持本机OFFICE完整嵌入模式&#xff0c;本机OFFICE所有功能基本都可以在网页上…

NR SRS Configuration

文章目录 Frequency PositioningFull-Bandwidth ConfigurationFrequency-Hopping ConfigurationMulti-User ConfigurationsTime-Domain Orthogonal SRSCyclic-Shift Orthogonal SRS Summary and Further ExplorationReferences 此示例展示了如何生成探测参考信号&#xff08;SR…

【行测】言语理解与表达:选词填空

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;读不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目标&#xff1a;掌握选词填空的基本题型&#xff0c;并能运用到例题中。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! …

[项目]基于FreeRTOS的STM32四轴飞行器: 十.检测遥控器

基于FreeRTOS的STM32四轴飞行器: 十.检测遥控器 一.检测遥控器连接逻辑二.遥控器的解锁情况三.遥控器控制飞机运转 一.检测遥控器连接逻辑 判断是否进入定高模式&#xff1a; 根据返回值判断遥控器的连接情况&#xff1a; 实现检测函数&#xff1a; 因为该函数在通信任务中…

Torch.expand等效矩阵相乘

文章目录 1. description2. pytorch 1. description torch.expand:主要作用是将向量按照指定维度进行复制&#xff0c;expand 可以用全一向量和给定向量以矩阵相乘的方式等效表示n_expand4 2. pytorch torch import torch import torch.nn as nntorch.set_printoptions(pr…

尝试在软考65天前开始成为软件设计师-计算机网络

OSI/RM 七层模型 层次名功能主要协议7应用层实现具体应用功能 FTP(文件传输)、HTTP、Telnet、 POP3(邮件)SMTP(邮件) ------- DHCP、TFTP(小文件)、 SNMP、 DNS(域名) 6表示层数据格式,加密,压缩.....5会话层建立,管理&终止对话4传输层端到端连接TCP,UDP3网络层分组传输&a…

Java 双端队列实战 实现滑动窗口 用LinkedList的基类双端队列Deque实现 洛谷[P1886]

集合 关系 介绍 Deque 是一个接口 LinkedList 是这个接口的实现类 题目 输入输出 滑动窗口 基于双端队列实现 Deque<Integer> deque new LinkedList<>(); 滑动窗口代码 洛谷 public static List<Integer> maxSlidingWindow(int[] nums, int k) {List&l…

Qemu-STM32(十):STM32F103开篇

简介 本系列博客主要描述了STM32F103的qemu模拟器实现&#xff0c;进行该项目的原因有两点: 作者在高铁上&#xff0c;想在STM32F103上验证一个软件框架时&#xff0c;如果此时掏出开发板&#xff0c;然后接一堆的线&#xff0c;旁边的人估计会投来异样的目光&#xff0c;特别…

QT开发(6)--信号和槽

这里写目录标题 1. 信号和槽概述信号的本质槽的本质 2. 信号和槽的使用2.1 连接信号和槽2.2 文档查询 3.自定义信号和槽3.1 自定义槽3.2 自定义信号3.3 带参数的信号和槽 4. 信号和槽的断开 1. 信号和槽概述 在Qt中&#xff0c;⽤⼾和控件的每次交互过程称为⼀个事件。⽐如&quo…

【前端】Canvas画布实现在线的唇膏换色功能

【前端】Canvas画布实现在线的唇膏换色功能 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【前端】Canvas画布实现在线的唇膏换色功能背景概述以下是我们的实现方法!第一步 — 找…

异步编程与流水线架构:从理论到高并发

目录 一、异步编程核心机制解析 1.1 同步与异步的本质区别 1.1.1 控制流模型 1.1.2 资源利用对比 1.2 阻塞与非阻塞的技术实现 1.2.1 阻塞I/O模型 1.2.2 非阻塞I/O模型 1.3 异步编程关键技术 1.3.1 事件循环机制 1.3.2 Future/Promise模式 1.3.3 协程&#xff08;Cor…