Thymeleaf单引号验证错误消息

时间:2014-08-12 10:18:25

标签: java spring thymeleaf

我使用validation-api验证输入字段是否包含非法字符:< > ' "我使用@Pattern注释将自定义消息转换为以下内容:以下符号< > " ' “ 不允许。打印此消息时,缺少单引号char。我有:以下标志< > " “ 不允许。

我尝试过使用\'和\或者'在message.properties中但没有成功(在第三种情况下,消息中有片段')。 消息显示使用:

<p class="error" th:if="${#fields.hasErrors('company.name')}" th:errors="${company.name}">error</p>

Thymeleaf版本:2.1.3.RELEASE

Spring版本:3.2.8.RELEASE

Spring webflow版本:2.4.0.RELEASE

1 个答案:

答案 0 :(得分:9)

我对Thymeleaft了解不多。但请注意,如果使用''MessageFormat检索邮件,则可能需要转义单引号(使用两个单引号(ResourceBundle))。

如果您使用的是Spring ResourceBundleMessageSource(内部使用ResourceBundleMessageFormat),则必须执行相同的操作。

请参阅MessageFormat javadoc

  

在String中,可以使用一对单引号来引用任何引号   除单引号外的任意字符。例如,模式字符串   “'{0}'”表示字符串“{0}”,而不是FormatElement。单引号   它本身必须用整数的双引号表示   串。例如,模式字符串“'{''}'”被解释为a   序列'{(引用开始和左大括号),''(单个   引用)和}'(右大括号和引用的结尾),而不是'{'和   '}'(引用左右花括号):表示字符串“{'}”,   不是“{}”。

前段时间我写了一篇博客文章,提供了有关此主题的更多详细信息:Single quote escaping with Java resource bundles