我使用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
答案 0 :(得分:9)
我对Thymeleaft了解不多。但请注意,如果使用''
和MessageFormat
检索邮件,则可能需要转义单引号(使用两个单引号(ResourceBundle
))。
如果您使用的是Spring ResourceBundleMessageSource
(内部使用ResourceBundle
和MessageFormat
),则必须执行相同的操作。
在String中,可以使用一对单引号来引用任何引号 除单引号外的任意字符。例如,模式字符串 “'{0}'”表示字符串“{0}”,而不是FormatElement。单引号 它本身必须用整数的双引号表示 串。例如,模式字符串“'{''}'”被解释为a 序列'{(引用开始和左大括号),''(单个 引用)和}'(右大括号和引用的结尾),而不是'{'和 '}'(引用左右花括号):表示字符串“{'}”, 不是“{}”。
前段时间我写了一篇博客文章,提供了有关此主题的更多详细信息:Single quote escaping with Java resource bundles