Знак доллара США не отображается правильно в Thymeleaf - PullRequest
0 голосов
/ 05 марта 2020

Я работаю над приложением, которое использует тимилиф и Springboot. Мое приложение поддерживает английский и французский языки. Я использую метод # number.formatCurrency для форматирования валюты на основе локали. Если я нажимаю на приложение с помощью localhost: 8080 / order / summary, в браузере правильно отображается символ «$». У меня есть требование, где языковой стандарт будет установлен в параметре запроса URL. Если я запрашиваю приложение как localhost: 8080 / order / summary? Language = fr, символ доллара будет переименован как «¤», а не «$». Проблема возникает и с language-en. Эта проблема возникает, когда сессионный локализатор решен. Ниже приведены мои классы конфигурации.

@Bean(name = "localeResolver")
public LocaleResolver getLocaleResolver() {
    SessionLocaleResolver resolver = new SessionLocaleResolver();
    resolver.setDefaultLocale(Locale.US);
    return resolver;
}

@Bean(name = "localeInterceptor")
public LocaleChangeInterceptor getlocaleInterceptor() {
    LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
    localeInterceptor.setParamName("language");
    return localeInterceptor;
}

Конфигурация Thymeleaf

@Bean
public ThymeleafViewResolver viewResolver() {
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    viewResolver.setCharacterEncoding("UTF-8"); // forcing UTF-8
    viewResolver.setContentType("text/html; charset=UTF-8");
    viewResolver.setOrder(1);
    viewResolver.setViewNames(new String[] { ".html"});
    return viewResolver;
}

@Bean
public SpringResourceTemplateResolver templateResolver() {
    SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
    templateResolver.setApplicationContext(applicationContext);
    templateResolver.setPrefix("classpath:/templates/");
    templateResolver.setSuffix(".html");
    templateResolver.setCharacterEncoding("UTF-8");
    templateResolver.setTemplateMode(TemplateMode.HTML);
    templateResolver.setCacheable(false);
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.setTemplateResolver(templateResolver());
    templateEngine.setEnableSpringELCompiler(true);
    return templateEngine;
}

public void configureViewResolvers(ViewResolverRegistry registry) {
    ThymeleafViewResolver resolver = new ThymeleafViewResolver();
    resolver.setTemplateEngine(templateEngine());
    resolver.setCharacterEncoding("UTF-8");
    registry.viewResolver(resolver);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...