springMVC解决中文乱码几种方式,以及使用fastJSOn调整时间 的格式

2023-11-06

为什么@ResponseBody向前台传JSON输数据会有乱码

首先要知道乱码的原因是在入参之前就应经决定的,就是springMVC 中HandlerMapping会找到对应的handel(即具体去处理请求的方法) ,但是请注意!在真正调用处理请的handle的来处理请求前,或者确切的说是在请求的参数未绑定到入参的方法上的时候,springMVC完成了数据转换,格式化的校验,其中数据的转换springMVC使用的是HttpMessageConvert<T>接口,主要负责将请求信息转化为一个对象(类型为T)再通过对象(类型为T)输出响应信息,用大白话说就是,我吧这个请求的信息转化成一个对象后,然后用这个对象的方法输出响应信息

举个栗子 ! StringHttpMessageConveter就是此接口的一个实现类,他就是用来将请求的信息转成String 类型的对象,然后设置响应的字符码,但是他默认的是iso-8859-1  所以返回JSON数据的时候会乱码

解决办法1  在入参的RequestMapping(producess={"application/json;charset=UTF-8"}) 这是定义了返回制定的内容类型  此时会根据http 请求中的Accept 进行匹配,如果匹配上就会以UTF-8格式转化

解决办法2  同时解决返回的数据时间的格式处理,这里使用的是fastJson

配置

<mvn:annotion-driven>

   <bean class="org.springframework.http.StringHttpMessageConverter">

        <property  name="supprotedMediaTypes">

           <list>

                <value>application/json;charset=UTF-8 </value>

           </list>

      </property>

   </bean>

<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">

        <property  name="supprotedMediaTypes">

           <list>

               <value>text/html;charset=UTF-8 </value>

                <value>application/json</value>

           </list>

      </property>

     <property name="features">

         <list>

           <!--输出日期的转换器-->

            <value>WriteDataUseDataFormat</value>

         </list>

     </property>

   </bean>

如果不想加fastJson 的配置可以使用@JSONFiled(format = "yyyy-MM-dd")标注在实体类对应的时间字段上

</mvn:annotion-driven>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springMVC解决中文乱码几种方式,以及使用fastJSOn调整时间 的格式 的相关文章

  • java实现单点登陆(SSO)

    java实现单点登陆 SSO 网络域名必须完全一致 才代表同一站点 域名映射 访问后面的 会跳转到前面 单点登陆概念 多系统 单一位置登录 实现多系统同时登陆 常出现在互联网和企业级平台中 单点登陆一般是用于互相授信的系统 实现单一位置登录
  • MyBatis---缓存-提高检索效率的利器

    目录 让我们来看看官方文档 缓存 一 一级缓存 1 基本介绍 2 一级缓存 3 一级缓存失效分析 二 二级缓存 1 基本介绍 2 二级缓存快速入门 2 1快速入门 3 注意事项和使用陷阱 三 Mybatis 的一级缓存和二级缓存执行顺序 四
  • Hibernate注解开发关于Id的若干问题

    Hibernate的基本注解注解式开发 Hibernate基本注解 其实在id的注解上 还是有很多有意思的东西 这些东西我们要从Hibernate内置的主键生成策略讲起 Hibernate内置的主键生成策略 一 assigned 主键由外部
  • 笔记:springboot-admin 整合spring security应用注册失败问题

    问题描述 原本正常的springboot admin 在整合了spring security之后就无法正常注册应用了 查看打印 Failed to register application as Application name admin
  • idea新建一个Spring项目(最基础)

    首先 笼统介绍一下 什么是spring 1 Spring 的主要作用就是为代码 解耦 降低代码间的耦合度 根据功能的不同 可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类 它们各自具有鲜明的特点 主业务代码间逻辑联系紧密 有具体的专
  • aop默认代理方式是什么

    jdk代理 可以通过proxy target class修改 proxy target class属性值决定是基于接口的还是基于类的代理被创建 如果proxy target class 属性值被设置为true 那么基于类的代理将起作用 这时
  • Spring Boot之容器功能

    目录 一 Spring 注入组件的注解 二 Configuration 1 代码演示 1 1JavaBean Monster java 1 2配置类 1 3执行代码 2 Configuration 注意事项和细节 三 Import 1 创建
  • mybatis工作原理

    1 基本原理 首先看一段JDBC代码 Class forName com mysql jdbc Driver String url jdbc mysql localhost 3306 localdb Connection con Drive
  • applicationContext.xml文件如何调用外部properties等配置文件

  • 微服务中使用Sentinel实现服务容错

    在微服务架构中 我们将业务拆分成一个个的服务 服务与服务之间可以相互调用 但是由于网络原因或者自身的原因 服务并不能保证服务的100 可用 如果单个服务出现问题 调用这个服务就会出现网络延迟 此时若有大量的网络涌入 会形成任务堆积 最终导致
  • springMVC解决中文乱码几种方式,以及使用fastJSOn调整时间 的格式

    为什么 ResponseBody向前台传JSON输数据会有乱码 首先要知道乱码的原因是在入参之前就应经决定的 就是springMVC 中HandlerMapping会找到对应的handel 即具体去处理请求的方法 但是请注意 在真正调用处理
  • 服务超时、重试次数、熔断如何设置

    文章目录 一 超时时间 为什么要设置超时时间 超时时间怎么设置 二 重试次数怎么设置 三 熔断 工作流程 一 超时时间 为什么要设置超时时间 针对服务调用都要设置一个超时时间 以避免依赖的服务迟迟没有返回调用结果 把服务消费者拖死 超时时间
  • Java框架--Spring(轻量级容器框架)(入门+ioc)

    目录 一 概念 海绵hong对于ioc的理解 二 spring快速入门 1 最基本的spring实例 1 1javabean类 1 2beans xml 1 3 ioc容器使用 2 spring 容器结构 机制 2 1beanDefinit
  • springMVC 绑定前台穿来的时间类型数据

    当前台传来的数据 对时间类型的数据其实是无法绑定的 解决办法1 DataTimeFormat pattern yyyy MM dd 标注在实体类的时间字段上 解释 这个注解的支持是来自
  • ZooKeeper的学习与应用

    转载 http blog csdn net rengq126 article details 7393227 最近大概学习了一下ZooKeeper 本身并没有深入 LGG尝试着在虚拟机里面搭了平台 看了看一些教材 从网上到处看别人的博文并引
  • RuoYi-Vue项目登录过期的实现

    登录逻辑 登录验证 param username 用户名 param password 密码 param code 验证码 param uuid 唯一标识 return 结果 public String login String usern
  • springboot原理

    1 什么是SpringBoot SpringBoot是一个快速开发框架 快速的将一些常用的第三方依赖整合 原理 通过Maven子父工程的方式 简化XML配置 全部采用注解形式 内置Http服务器 Jetty和Tomcat 最终以java应用
  • Spring Boot入门必会(基本介绍+依赖管理+自动装配)

    目录 一 基础入门 1 Spring Boot 是什么 2 SpringBoot 快速入门 2 1完成步骤 2 2快速入门小结 3 Spring SpringMVC SpringBoot 的关系 3 1梳理关系 3 2如何理解 约定优于配置
  • Shiro权限管理框架

    Shiro 一 Shiro权限 什么是权限控制 忽略特别细的概念 比如权限能细分很多种 功能权限 数据权限 管理权限等 理解两个概念 用户和资源 让指定的用户 只能操作指定的资源 CRUD 初学javaweb时怎么做 Filter接口中有一
  • Spring IOC—基于XML配置和管理Bean 万字详解(通俗易懂)

    目录 一 前言 二 通过类型来获取Bean 0 总述 重要 1 基本介绍 2 应用实例 三 通过指定构造器为Bean注入属性 1 基本介绍 2 应用实例 四 通过p命名空间为Bean注入属性 1 基本介绍 2 应用实例 五 通过ref引用实

随机推荐

  • 有关‘全局唯一id‘

    UUID和Snowflake的对比 当需保证全局唯一的id 可以选用UUID或Snowflake 及其变种 其中UUID 不依赖于任何第三方系统 性能和可用性上较好 Snowflake生成的id具有单调递增性 可以拿到生成时的时间戳信息 能
  • MySQL高级增删改查

    新增数据 基本语法 insert into 表名 字段列表 values 值列表 主键冲突 更新和替换 主键冲突 更新操作 insert into 表名 字段列表 包含主键 values 值列表 on duplicate key updat
  • SqlServer数据库版本不一致使用DROP TABLE IF EXISTS语法报错

    SqlServer数据库版本不一致使用DROP TABLE IF EXISTS语法报错 在SqlServer2016版本及更高版本 建表前判断表是否存在 可以使用 DROP TABLE IF EXISTS sysuser 低版本的SqlSe
  • linux启动停留时间,Ubuntu 16.04 启动长时间停留在紫屏状态

    Ubuntu 16 04 启动长时间停留在紫屏状态 1 Ubuntu 16 04 启动长时间停留在紫屏状态 2 Advanced options for Ubuntu 3 Ubuntu with Linux 4 10 0 28 generi
  • Framework工具——EA画图

    EA 是一个著名的企业架构 Enterprise Architecture 工具 用于绘制和管理企业的架构图和过程模型 该工具提供了多种功能 包括建立业务流程图 数据流图 组织结构图 应用架构图等 EA工具可帮助企业进行战略规划 业务流程改
  • Redis过期监听—订单超时-取消

    最近在做电商项目 涉及支付超时处理的几种方式 记录哈使用redis监听处理 提交订单的时候 支付 超过了有效时间则支付状态自动更新为已取消 redis过期监听的实现 1 修改redis windows conf配置文件中notify key
  • OpenBSD cvsup更新

    安装了 OpenBSD 后你会发现它很小个 只有500多M 当然里面只有ssh sendmail功能 dev wd0a 130M 38 8M 84 7M 31 dev wd0h 95 5G 16 0K 90 8G 0 home dev wd
  • vue2.0解决el-table无限滚动解决数据量大前端界面渲染耗时或卡顿问题

    vue相关依赖版本 name vue demo version 0 1 0 private true scripts serve vue cli service serve build vue cli service build lint
  • input元素的事件的触发顺序及change事件触发条件

    1 input元素的事件触发顺序
  • Ubuntu学习笔记:配置账户密码使用期限

    Ubuntu学习笔记 配置账户密码使用期限 配置账户密码最短使用期限为 10天 最长使用期限为 90 天 查看的方式还可以是 sudo passwd S liu
  • SpringBoot使用ShedLock调度任务

    前言 在分布式的场景下 SpringBoot程序以集群的方式部署 这些程序中运行着相同的代码 如果其中有定时任务的话 所有的程序都会运行该任务 这样就会导致任务的重复执行 由于所有的定时任务在集群的不同节点值中 所以需要一个专属的数据存储空
  • GCC编译选项参数

    linux系统下头文件 库文件搜索路径总结 文章目录 一 头文件 1 1 gcc或g 找头文件有三种策略 二 库文件 2 1 编译时查找库文件路径 2 2 运行时查找动态库文件路径 2 3 动态库的搜索路径搜索的先后顺序 一 头文件 1 1
  • java类静态实例成员_java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序...

    java中的成员分为 静态成员 静态成员变量 静态代码块 静态成员方法 实例成员 实例成员变量 实例代码块 实例成员方法 构造方法 析构方法 下面做的实验 主要是验证 当new 一个子类时 子类和它的父类中 静态成员变量 静态代码块 实例成
  • jar还原源码

    上周接到个新任务 一个遗留的接口工程需要改造 然而根据前任开发留下的文档看 这个工程没有代码 只有生产环境的jar包供使用 边吐 咒 槽 骂 边在SVN服务器上四处翻找 想找到这个工程的源码 毕竟没源码怎么跑起来这个工程 不能跑起来怎么改造
  • 导致服务器CPU跑满的原因有哪些

    一 硬件原因 服务器CPU自身出现问题 比如机房散热不足 温度过热或者驱动故障 导致CPU性能下降 很容易造成CPU跑满的情况 二 网站代码错误 排查硬件原因后 我们进入网站后台查看是哪些程序占用了大量CPU 检测这些代码自身是否有问题 如
  • consul重启导致服务必须跟着重启解决方案

    问题 consul作为注册中心和eureka的机制不同 当微服务启动后首先向注册中心发注册请求 这点两者一致 之后consul在维护可用服务列表时 采用的是主动向微服务发健康检查的接口 也可以配置成微服务主动向consul发心跳 但是我看完
  • js写一个行星运转的效果

    以太阳系为例 以太阳为中心点 水金木土地火天海依次围绕着太阳做圆周运动 嗯 假设为圆周运动吧 以太阳为圆心点 所以在求行星做圆周运动时的半径就是行星的圆心点到太阳的圆心点 我们可以计算出太阳和行星的圆心点 我们可以通过函数获得行星和太阳的l
  • 经典面试题-聊聊JDK和CGLib动态代理实现和区别

    前言 在电面试阿里时 被问到Spring AOP中JDK和CGLib动态代理的区别 在此整理一下 供大家参考 JDK和CGLib动态代理实现 动态代理在Java中有着广泛的应用 如Spring AOP Hibernate数据查询 测试框架的
  • ZeroTier与Windows远程桌面实现远程控制 (转)(内网穿透)

    背景 Teamviewer虽然很好用速度也快 但是它是一款商业软件 时常会检测为商业用途而阻止个人免费使用 虽然网上也有一些修改ID的方法 还是各种破解版 但是均不尽如人意 于是想找找替代方案 经过尝试发现ZeroTier与Windows远
  • springMVC解决中文乱码几种方式,以及使用fastJSOn调整时间 的格式

    为什么 ResponseBody向前台传JSON输数据会有乱码 首先要知道乱码的原因是在入参之前就应经决定的 就是springMVC 中HandlerMapping会找到对应的handel 即具体去处理请求的方法 但是请注意 在真正调用处理