多个RequestBody
时间: 2023-10-17 22:35:02 浏览: 160
快速解决SpringMVC @RequestBody 用map接收请求参数的问题
多个RequestBody是指在Spring MVC控制器中使用Ajax传递多个变量给@Controller中的方法。这可以通过以下几种方式实现。
一种方式是在前端使用Ajax同时传递多个参数,然后在后端的方法中使用@RequestParam注解来接收这些参数。这种方式比较简单直接,但不太适合传递大量的数据。
另一种方式是使用@RequestBody注解来接收一个包含多个参数的对象。这个对象可以是一个自定义的Java类,也可以是一个Map或者是一个List。在前端使用Ajax时,需要将多个参数封装成一个对象,然后将这个对象转换为JSON格式的字符串进行传递。在后端的方法中,使用@RequestBody注解来接收这个JSON字符串,并将其转换为对应的Java对象。可以使用FastJson等工具来进行JSON字符串和Java对象的转换。
如果想要使用xml配置方式来支持多个RequestBody,可以在Spring的配置文件中添加如下配置:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json</value>
<value>text/html</value>
<value>text/plain</value>
</list>
</property>
<property name="fastJsonConfig" ref="fastJsonConfig"/>
</bean>
</mvc:message-converters>
<mvc:argument-resolvers>
<bean class="io.github.chujianyun.bean.MultiRequestBodyArgumentResolver"/>
</mvc:argument-resolvers>
</mvc:annotation-driven>
这样就可以在控制器的方法中使用多个@RequestBody注解来接收多个参数了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [SpringBoot Controller 中使用多个@RequestBody的正确姿势](https://blog.csdn.net/w605283073/article/details/82119284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文