当前位置: 首页 > 知识库问答 >
问题:

Spring Boot(1.4.1)和Thymeleaf(3)MessageSource单引号

薛烨霖
2023-03-14
app.quotes=Francesco's title
app.quotes2=Francesco''s title

在page.html中打印消息

<h2 th:text="#{app.quotes}"></h2>
<h2 th:utext="#{app.quotes}"></h2>
<h2 th:text="#{app.quotes2}"></h2>
<h2 th:utext="#{app.quotes2}"></h2>

我准确地得到(th:text或th:utext没有任何区别)

  • 弗朗切斯科的标题
  • 弗朗切斯科的标题
  • 弗朗切斯科的标题
  • 弗朗切斯科的标题

在我的控制器中

private final Logger log = LoggerFactory.getLogger(this.getClass());    

@Autowired
private MessageSource messages;

@RequestMapping(value="/page", method = RequestMethod.GET)
public String page() {

    String text = messages.getMessage("app.quotes", null, LocaleContextHolder.getLocale());
    String text2 = messages.getMessage("app.quotes2", null, LocaleContextHolder.getLocale());

    log.debug("text = " + text);
    log.debug("text2 = " + text2);

    // Output
    return "page";
}

我记录的文本是

  • text=Francescos title
  • text2=弗朗切斯科的标题

这是可以预见的,因为属性消息中的单引号必须用双单引号转义(“Francesco''s title”应该是正确的文本)。如何使Thymeleaf像MessageSource那样打印转义双单引号的消息,或者使MessageSource像Thymeleaf那样返回纯文本?我不想基于调用者使用不同的键/值。

提前感谢您的帮助。

共有1个答案

郎弘业
2023-03-14

只要消息不包含参数(app.quote=John的消息),则Spring不会解析该消息,但如果消息包含参数(app.quote={0}的消息)则会解析该消息

您可以使用SetalWaySuseMessageFormat重写此行为:

@Bean
MessageSource defaultMessageSource(){
 org.springframework.context.support.ReloadableResourceBundleMessageSource source = new org.springframework.context.support.ReloadableResourceBundleMessageSource();
source.setAlwaysUseMessageFormat(true);
return source;
}

还要看看ResolvEcodeWithoutArguments。

 类似资料:
  • 问题内容: 我的CSS和Thymeleaf有问题。 在我的Spring启动应用程序中,我具有以下结构: src / main / resource / static / css(用于CSS文件) src / main / resource / static / templates(用于html文件) 现在,使用我的Thymeleaf,将我的html页面命名为ErrorPage,将css文件命名为L

  • 本文向大家介绍SpringBoot引入Thymeleaf的实现方法,包括了SpringBoot引入Thymeleaf的实现方法的使用技巧和注意事项,需要的朋友参考一下 1.Thymeleaf简介 Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用  Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模,

  • 我们将使用IntelliJ IDEA/Android Studio来创建这个工程,因此你会对截图看起来比较熟悉。 让我们开始创建一个新的Android工程。你可以创建你自己的工程或者用本书中提供的导入。选择你自己喜欢的创建方式这取决于你。 如果你想用Android Studio创建一个新的工程,通常你可以参考官方文档:http://developer.android.com/intl/zh-cn/

  • 这里有一个非常基本的spring boot项目,只有6个类。 https://github.com/paranoiabla/spring-boot-mockmvc 设置非常基本,只有一个测试用例失败了。我得到的例外是 我相信这是因为line,方法通过调用仅接受路径的构造函数创建了。作为内部的结果,使用初始化,它将在类路径中查找资源。这样,如果我有一个并且我的属性文件在中,它将永远找不到它们,因为被

  • 本文向大家介绍SpringBoot中的Thymeleaf用法,包括了SpringBoot中的Thymeleaf用法的使用技巧和注意事项,需要的朋友参考一下 Thymeleaf Thymeleaf是最近SpringBoot推荐支持的模板框架,官网在thymeleaf.org这里。 我们为什么要用Thymeleaf来作为模板引擎呢?官网给了我们一个非常令人信服的解释: Thymeleaf is a m

  • 本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言     Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS