首页 > 其他分享 >SpringMVC参数接收与数据响应

SpringMVC参数接收与数据响应

时间:2023-06-07 19:55:45浏览次数:34  
标签:请求 ResponseBody SpringMVC RequestBody 响应 参数 注解 接收 String

SpringMVC如何接受请求参数(普通类型参数/对象类型参数/数组/json数据等)

1、普通类型参数

(1)在可以在方法参数上使用@RequestParam注解来绑定请求参数,此注解允许指定请求参数的名称,以及是否是必须传的参数。

@RequestMapping("/example")
public String exampleMethod(@RequestParam("paramName") String param) {
    // 处理参数
    return "viewName";
}

(2)如果需要传的参数是URL的一部分,可以使用@PathVariable注解来绑定路径参数。

@RequestMapping("/example/{id}")
public String exampleMethod(@PathVariable("id") int id) {
    // 处理路径参数
    return "viewName";
}

2、对象类型参数

常用的是@RequestBody注解,如果请求的内容是json或xml格式的数据,并且希望将其转为对象,可以使用@RequestBody注解,springmvc将自动进行请求体到对象的转换。

3、数组类型

(1)@RequestParam注解,通过此注解来绑定请求参数到数组,使用“value”属性指定请求参数的名称,并将方法参数声明为数组类型。

@RequestMapping("/example")
public String exampleMethod(@RequestParam("myArray") String[] array) {
    // 处理数组
    return "viewName";
}

(2)如果请求的路径中有多个参数值,这些参数值通过“/”进行分离,可以使用@PathVariable注解绑定这些参数到数组。

@RequestMapping("/example/{values}")
public String exampleMethod(@PathVariable("values") String[] array) {
    // 处理数组
    return "viewName";
}

4、Json数据

你可以使用 @RequestBody 注解来接收 JSON 类型的请求参数。Spring MVC 将自动将请求的 JSON 数据转换为对象。在控制器方法中,使用@RequestBody注解,并将接收json数据的对象作为方法参数。

@RequestMapping("/example")
public String exampleMethod(@RequestBody MyObject obj) {
    // 处理接收到的 JSON 数据
    return "viewName";
}

当 Spring MVC 接收到请求时,它会自动将请求的 JSON 数据转换为 MyObject 对象,并传递给控制器方法。

如何给客户端响应数据(跳转页面&返回数据)?

(1)可以通过返回视图名称。返回一个视图名称,告诉springmvc渲染对应的视图,然后作为响应发送给客户端。

(2)使用ModelAndAview。创建一个ModelAndView对象,把数据模型添加到MV中,并设置视图名,然后返回对象。springmvc会根据视图名称渲染对应的视图。

(3)如果想要一个json类型或者xml格式的数据,也可以使用@ResponseBody注解。

@RequestBody与@ResponseBody的区别

@RequestBody@ResponseBody 是 Spring MVC 中用于处理请求和响应体的注解,它们有以下区别:

  1. @RequestBody:

    • 作用:@RequestBody 用于将请求体的内容绑定到方法参数上。

    • 使用场景:通常在处理 POST、PUT 等请求方法时,用于接收请求体中的数据,并将其转换为对象或其他类型的参数。

    • 示例:

      @RequestMapping("/example")
      public String exampleMethod(@RequestBody MyObject obj) {
          // 处理接收到的请求体数据
          return "response";
      }
      
  2. @ResponseBody:

    • 作用:@ResponseBody 用于将方法返回值直接作为响应体的内容返回给客户端。

    • 使用场景:通常在返回 JSON、XML 或其他格式的响应时使用,将对象或其他类型的数据转换为响应体的内容。

    • 示例:

      @RequestMapping("/example")
      @ResponseBody
      public MyObject exampleMethod() {
          MyObject obj = new MyObject();
          // 处理数据并设置到 obj
          return obj;
      }
      
    • 注意:在 Spring 4.0 之后,默认情况下,@ResponseBody 注解不再需要显式声明。如果你使用了 Spring 4.0 或更高版本,而且没有自定义的配置,Spring MVC 会自动将方法返回值作为响应体返回给客户端。

综上所述,@RequestBody 主要用于将请求体的内容绑定到方法参数上,而 @ResponseBody 用于将方法返回值直接作为响应体的内容返回给客户端。它们在处理请求和响应体时起到不同的作用,但可以组合使用,实现接收请求体并返回自定义格式的响应。

标签:请求,ResponseBody,SpringMVC,RequestBody,响应,参数,注解,接收,String
From: https://www.cnblogs.com/kuangsun125/p/17464392.html

相关文章

  • 响应状态码
    200:请求响应成功3XX:请求重定向重定向:重新定位到提前预设的位置上去4XX:找不到资源资源不存在5XX:服务器代码错误500502:网关错误......
  • springmvc后端响应给前端
    controllerpackagecom.bh.controller;importcom.bh.po.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.ModelAttribute;importorg.springframework.web.bind.annotation.RequestMapping;importorg.spring......
  • Vue3 之 响应式 API reactive、 effect源码,详细注释
    Vue3之响应式APIreactive、effect源码,详细注释目录一.实现响应式API:reactive、shallowReactive、readonly、shallowReadonly1.针对不同的API创建不同的响应式对象2.实现createReactiveObject3.实现不同的拦截函数baseHandlers.ts二.实现响应式effect1.创建响应式的......
  • C#语言LIS系统如何接收和解析仪器数据HL7协议
    以下是使用C#实现HL7接口协议的接收和解析的简单示例:1.使用TcpListener类创建一个TCP服务器,用于监听指定端口上的连接请求:```TcpListenerserver=newTcpListener(IPAddress.Any,8888);server.Start();```2.等待客户端连接,并使用TcpClient类创建一个TCP连接:```TcpClie......
  • Spring 学习笔记(8)—— SpringMVC 简介、DispatcherServlet 配置
    一、SpirngMVC简介SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口。在数据绑定、视图解析、本地化处理及静态资源处理上都有不俗的表现。SpringMVC处理请求的整体过程:二、配置DispatcherServlet1配置DispatcherServlet,截获特定的URL请求显式......
  • Jmeter-依赖上一个接口的响应数据
    问题:  下一个接口的入参需要依赖上一个接口的响应.如: 修改客户请求需要依赖添加客户请求响应中的id 1. 在上一个接口的请求中添加后置处理器:2. 将响应中的出参设置为变量 3. 在下一个接口的请求中使用变量  4. 请求成功  ......
  • Jmeter-设置查看结果树中响应数据的格式
    jmeter查看结果树中,响应数据的格式默认为Text,可按下图所示修改为自己需要的格式,因为我需要的是json格式,则直接选择json即可 ......
  • Jmeter-将响应数据从unicode编码转为中文
    现象: 解决:1. 修改配置 sampleresult.default.encoding=UTF-8 2. 添加后置处理器: BeanShell后置处理程序  可以在测试计划或者线程组下面添加,这样就不用每个请求都添加了. 代码:Strings=newString(prev.getResponseData(),"UTF-8");......
  • SpringMVC
    SpringMVCModel:模型业务逻辑层+数据访问层View:视图jsphtmlController:控制器servlet介绍SpringMVC是一种基于Java实现MVC模型的轻量级Web框架,SpringMVC已经成为目前最主流的MVC框架之一,从Spring3.0的发布,就已全面超越Struts2,成为最优秀的MVC框架。它通过一......
  • HTTP响应
    HTTP响应的构成HTTP请求消息由3部分构成,分别是响应行、响应头、响应体。如图重点关注状态码和响应体。1、响应行(状态行):协议版本 状态码 状态描述协议版本:http/0.9(过时)、http/1.0、http/1.1(现用)状态码:(5种类型)1**:信息响应,服务器收到请求,需要请求者继续执行操作。2**:成......