spring boot 获取配置文件中的中文乱码怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 获取配置文件中的中文乱码怎么解决相关的知识,希望对你有一定的参考价值。

参考技术A 你好,
可以编写一个Filter
public
class
EncodingFilter
implements
Filter

/**
编码
*/
String
encoding
=
null;
/**
销毁编码
*/
public
void
destroy()

this.encoding
=
null;

/**
*
执行过滤链,对请求和相应设置编码
*/
public
void
doFilter(ServletRequest
request,
ServletResponse
response,
FilterChain
chain)
throws
IOException,
ServletException

if
(encoding
!=
null)

//
对请求进行编码设置
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);

//
将处理权转交给下一个处理器
chain.doFilter(request,
response);

/**
*
初始化编码,从配置文件中获取编码的值
*/
public
void
init(FilterConfig
filterConfig)
throws
ServletException

this.encoding
=
filterConfig.getInitParameter("encoding");


需要再Web.xm中注册拦截器
EncodingFilter
com.sato.filter.EncodingFilter
encoding
GBK

Spring boot Freemarker 获取ContextPath的方法

Spring boot Freemarker 获取ContextPath的两种方法:

1、自定义viewResolver,Spring boot中有一个viewResolver,这个和配置文件中的师徒解析器是一样的,但是spring boot不允许xml配置文件,所以可以写一个自定义的FreeMarker视图解析器。

public class MvcConfig extends WebMvcConfigurerAdapter {
    @Bean
    public FreeMarkerViewResolver freeMarkerViewResolver() {
        FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
        resolver.setPrefix("");
        resolver.setSuffix(".ftl");
        resolver.setContextType("text/html;charset=UTF-8");
        resolver.setRequestContextAttribute("rc");
        return resolver;        

     }
} 

然后在.ftl文件中通过${rc.contextPath}获取、

2、Spring boot自己提供的方法:内置方法。

${springMacroRequestContext.contextPath}

 

以上是关于spring boot 获取配置文件中的中文乱码怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

spring boot

关于spring boot项目启动报错问题

spring boot怎么配日志

Spring Boot----缓存

Spring boot随时获取ApplicationContex

Spring Boot中的注解