zoukankan      html  css  js  c++  java
  • springboot2.0 controller中文问号或者乱码的解决办法

    开发过程中中文一直是???显示,根据网上的帖子修改配置文件后也没有效果。后来偶然间看到一篇文章,把fastjson改为默认序列化插件,加入后就没有问题了。

     1 package com.leenleda.ward.tv.admin.interceptor;
     2 
     3 import com.alibaba.fastjson.serializer.SerializerFeature;
     4 import com.alibaba.fastjson.support.config.FastJsonConfig;
     5 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
     6 import com.leenleda.ward.tv.common.config.LeenledaConfig;
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.context.annotation.Configuration;
     9 import org.springframework.http.MediaType;
    10 import org.springframework.http.converter.HttpMessageConverter;
    11 import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    12 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    13 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    14 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    15 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    16 
    17 import javax.annotation.Resource;
    18 import java.util.ArrayList;
    19 import java.util.Arrays;
    20 import java.util.List;
    21 
    22 
    23 /**
    24  * @Author: pengbenlei
    25  * @Date: 2020/2/19 11:22
    26  * @Description:
    27  */
    28 @Configuration
    29 @EnableWebMvc
    30 public class CustomMVCConfiguration implements WebMvcConfigurer {
    31 
    32     @Resource
    33     LoginInterceptor loginInterceptor;
    34 
    35     @Autowired
    36     LeenledaConfig leenledaConfig;
    37 
    38     @Override
    39     public void addInterceptors(InterceptorRegistry registry) {
    40         //登录拦截器
    41         registry.addInterceptor(loginInterceptor).addPathPatterns("/admin/**").excludePathPatterns(Arrays.asList("/file/**"));
    42     }
    43 
    44     /**
    45      * 添加静态资源文件,外部可以直接访问地址
    46      *
    47      * @param registry
    48      */
    49     @Override
    50     public void addResourceHandlers(ResourceHandlerRegistry registry) {
    51         String locationPath = "file:" + leenledaConfig.getLeenledaUploadRoot() + "/leenleda/application/";
    52         registry.addResourceHandler("/file/**")
    53                 .addResourceLocations(locationPath);
    54     }
    55 
    56     @Override
    57     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    58 
    59         for (int i = converters.size() - 1; i >= 0; i--) {
    60             if (converters.get(i) instanceof MappingJackson2HttpMessageConverter) {
    61                 converters.remove(i);
    62             }
    63         }
    64         FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    65         FastJsonConfig config = new FastJsonConfig();
    66         config.setSerializerFeatures(
    67                 SerializerFeature.WriteMapNullValue,        // 是否输出值为null的字段,默认为false
    68                 SerializerFeature.WriteNullListAsEmpty,     // 将Collection类型字段的字段空值输出为[]
    69                 SerializerFeature.WriteNullStringAsEmpty,   // 将字符串类型字段的空值输出为空字符串
    70                 SerializerFeature.WriteNullNumberAsZero,    // 将数值类型字段的空值输出为0
    71                 SerializerFeature.WriteDateUseDateFormat,
    72                 SerializerFeature.DisableCircularReferenceDetect    // 禁用循环引用
    73         );
    74         fastJsonHttpMessageConverter.setFastJsonConfig(config);
    75         // 添加支持的MediaTypes;不添加时默认为*/*,也就是默认支持全部
    76         // 但是MappingJackson2HttpMessageConverter里面支持的MediaTypes为application/json
    77         // 参考它的做法, fastjson也只添加application/json的MediaType
    78         List<MediaType> fastMediaTypes = new ArrayList<>();
    79         fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    80         fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
    81         converters.add(fastJsonHttpMessageConverter);
    82     }
    83 
    84 }
    WebMvcConfigurer
  • 相关阅读:
    Anaconda+Tensorflow环境安装与配置(转载)
    Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)
    设计模式之工厂方法模式VS简单工厂方法模式
    WPF之外观模式
    WPF之小动画三
    WPF之小动画二
    WPF之小动画一
    WPF之Behavior
    WPF之拖动项滚动条自滚动(当拖动项到达高度的边界时候滚动条自己可以上下滚动)
    WPF之给使用了模板的MenuItem添加快捷操作
  • 原文地址:https://www.cnblogs.com/rolayblog/p/12661597.html
Copyright © 2011-2022 走看看