Spring MVC @RestController接收POST请求,用Map接收

本文介绍如何使用Restful风格处理POST请求,特别是针对微信小程序等无法使用表单提交的情况,通过JSON字符串提交,并利用SpringMVC框架的@RequestBody注解进行参数接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

脱离传统项目,使用微服务集群开发后。RestFul风格势在必行,所以,本篇文章针对使用restful风格的编写人员。


主题

restful post请求提交的参数用什么接收?


关键字

Map、Entity


内容

1、首先,传统的接收使用HttpServletRequest同时支持get问好提交和form表单post提交,后台获取值使用req.getParement("name")获取值。

2、那么,针对微信小程序的没有表单提交功能,我们怎么办?只能选择提供的ajax形式提交,也是现如今web、app、小程序通用的提交形式,提交JSON字符串即可。

3、服务端的改造就是删除HttpServletRequest参数,改用

@RequestBody Map<String, Object> body

形式,即可(Spring MVC会自动将传递的JSON字符串封装到map类型中,依据官网说明,我们需要创建自己的Entity接收参数。但我的项目数据库使用MongoDB,操作的全是Map顾省去创建Entity,另外就是太懒j_0012.gif


最后

-使用如上风格请全面启用Restful风格,将@Controller替换@RestController

-@RequestMapping使用method明确说明

wKiom1nkaBzDtSKdAADgcLbkFiE339.jpg


2017-10-16 16:07 于 西安汇鑫IBC

沫沫金

@Controller 和 @RestController 都是 Spring MVC 框架中的注解,用于标记 Java 类作为控制器,但它们在处理HTTP请求和返回响应的方式上有所不同。 1. **@Controller**: - 它主要用于传统意义上的控制层(Controller),主要用于处理HTTP请求并调用业务逻辑。当你使用 `@RequestMapping` 注解处理HTTP方法(GET、POST等)时,`@Controller` 的类和方法会被Spring MVC识别为可以处理HTTP请求的地方。 - 控制器通常会调用服务层或领域对象进行业务逻辑处理,然后将结果转换为视图模型(Model)以便传递给视图进行渲染,最后通过`ModelAndView` 或直接返回`Model`对象与`ViewName`。 2. **@RestController**: - 这是一个 `@Controller` 的扩展,它的主要特点是它默认返回JSON格式的响应,而不是传统的HTML视图。这意味着 `@RestController` 的方法通常不包含视图相关的代码,而是直接操作数据并返回`ResponseEntity` 或 `Object`。 - 当方法需要返回HTTP响应时,它可以直接返回一个对象,如`@GetMapping` 返回一个 `Map` 或 `Object`,Spring MVC 会自动序列化这个对象为JSON并设置HTTP头信息。这样,`@RestController` 适用于Web API和RESTful应用,适合于客户端为JavaScript或移动应用的场景。 相关问题: 1. 何时会在Web应用中选择使用@Controller而非@RestController? 2. 在使用`@RestController`时,如何处理HTTP错误码或异常情况? 3. 如果希望`@RestController`返回HTML页面,如何配置?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值