springmvc处理ajax请求

9、springmvc处理ajax请求

9.1@RquestBody请求

@RquestBody可以获取请求体信息,使用@RquestBody注解标识控制器方法的形参,当前的请求的请求体就会为当前注解所标识的形参赋值

使用@RquestBody注解将json格式的请求参数转换为java对象

⑴导入jackson依赖

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.1</version>
        </dependency>

⑵在springmvc配置文件中设置

<mvc:annotation-driven></mvc:annotation-driven>

使用@RquestBody注解将json格式的请求参数转换为map集合

@RequestMapping("/test/requestBody/json")
public void testRequestBodyAjax(@RequestBody Map<String, Object> user) {
    System.out.println(user);
}

9.2@ResponseBody

**@ResponseBody用于标识一个控制器方法,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器响应浏览器json数据 **

9.3@RestController注解

这是一个复合注解,标识在控制器的类上,就相当于给类添加了@Controller注解,并且为该类中的每个方法都添加了@ResponseBody注解

@Controller
public class TestAjaxController {

    @RequestMapping("/test/responseBody")
    @ResponseBody
    public String testResponseBody() {
        // 未加@ResponseBody注解,默认返回的是视图名称,即thymeleaf模板
        return new User(1, "张三", "123456", 18, "男").toString();
    }
}
@RestController
public class TestAjaxController {

    @RequestMapping("/test/responseBody")
    public String testResponseBody() {
        // 未加@ResponseBody注解,默认返回的是视图名称,即thymeleaf模板
        return new User(1, "张三", "123456", 18, "男").toString();
    }
}

上面这两种写法等效,如果每个方法都要使用ResponseBody的时候,建议直接加上RestController

posted @ 2024-06-26 12:52  ning12  阅读(2)  评论(0编辑  收藏  举报