springmvc常用注解,和中文乱码问题解决

1、@RequestBody

作用:可以把前台请求的标准json字符串,在后台接口可以直接转成Java对象

位置:标记在形参前面

1.1 实现步骤

  • 导入依赖
<!-- jackson:实现json格式的字符串与Java对象的转换 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>
  • 目标接口
@RequestMapping("/testModelAndViewUsePostAndJson")
public ModelAndView testMavPost(@RequestBody User user){
    log.info("{}", user);
    ModelAndView mav = new ModelAndView();
    //视图名称
    mav.setViewName("success");
    //数据:request
    mav.addObject("user", user);
    return mav;
}

| Postman测试 |
在这里插入图片描述

2、@ResponseBody

作用:可以把后台接口的返回值以响应体的形式直接返回客户端

将java对象转换成json数据返回到客户端

位置:标记在目标接口上或者返回值类型前

2.1 实现步骤

  • 导入依赖
<!-- jackson:实现json格式的字符串与Java对象的转换 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>
  • 目标接口
@RequestMapping("/testResponseBody")
@ResponseBody
public User testResponseBody(Long id){
    log.info("id:{}", id);

    //模拟从数据库获取用户对象
    User user = new User();
    user.setId(id);
    user.setUsername("汤姆");
    user.setBirth(new Date());
    user.setAge(12);
    //变成json字符串直接响应给客户端,如果返回的是字符串,那么就直接响应字符串
    return user;
}

@RequestMapping("/testResponseBodyReturnString")
public @ResponseBody String testResponseBodyReturnString(Long id){
    log.info("id:{}", id);

    //模拟从数据库获取用户对象
    User user = new User();
    user.setId(id);
    user.setUsername("汤姆大baby");
    user.setBirth(new Date());
    user.setAge(12);
    //变成json字符串直接响应给客户端,如果返回的是字符串,那么就直接响应字符串
    return user.getUsername();
}
  • 测试上述接口就可以了

2.2 中文乱码处理

  • 如果出现了乱码,在springmvc配置文件修改注解驱动为以下内容
<mvc:annotation-driven>
    <mvc:message-converters>
        <!-- 处理纯字符串中文乱码 -->
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>application/json;charset=UTF-8</value>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
        <!-- jackson处理中文乱码-->
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>application/json;charset=UTF-8</value>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

3、@RestController

标记在类上,等同于 @Controller + @ResponseBody,作用就是当前控制器中所有Handler都返回json数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值