繁体   English   中英

Spring Boot MVC MessageSource defaultEncoding不起作用

[英]Spring Boot MVC MessageSource defaultEncoding does not work

简单的Spring Boot Web应用程序。 配置代码段:

    @Bean
    public MessageSource validationMessageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("ValidationMessages");
        messageSource.setDefaultEncoding("UTF-8");

        return messageSource;
    }

    @Bean
    public Validator validator() {
        LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
        localValidatorFactoryBean.setValidationMessageSource(validationMessageSource());
        return localValidatorFactoryBean;
    }

我将defaultEncoding设置为UTF-8 我有ValidationMessages.properties文件,该文件以UTF-8编码(我的IntelliJ表示,notepad ++表示),并且包含不同的字符。

我有一个简单的网页(使用Freemarker创建)。 该页面上有一些静态UTF-8文本,并且可以正确显示。

而且,当我提交位于该页面上的表单时,我希望看到正确的错误消息,但是当验证失败(JSR-303 / JSR-349验证)时,我会看到类似обовÑзкове поле. min 2, max 15 ÑимволÑв обовÑзкове поле. min 2, max 15 ÑимволÑв这是来自.properties的消息,但编码错误!

这是页面(简体:没有div,css,js等):

<#import "/spring.ftl" as spring/>
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>ShareMyCar</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    </head>
    <body>
       <form action="/registration" method="POST">
           <@spring.formInput path="modelObj.name" />
           <@spring.showErrors "<br>"/>

           <input type="submit" class="btn btn-primary" value="Submit" />            
        </form>

    </body>
</html>

我还需要做些什么才能使其正常工作?

Java自动在本地化包中采用ISO-8859-1编码。

请参阅: https : //docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.InputStream)

要使其正常工作,请将文件另存为ISO-8859-1,或使用转义序列,例如\\ u1234。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM