我的资源包中定义了 3 个属性:
test.key1 = Just a normal snippet.
test.key2 = snippet with {0} arguments {1}.
test.key3 = snippet with 'charac'ter'.
test.key4 = snippet with {0} arguments' and 'characters {1}.
以下是我在我的 jsp 中访问它们的方式:
<spring:message code="test.key1"/>
<spring:message code="test.key2" arguments="ARG1,ARG2"/>
<spring:message code="test.key3"/>
<spring:message code="test.key4" arguments="ARG1,ARG2"/>
渲染它们看起来像这样:
Just a normal snippet.
snippet with ARG1 arguments ARG2.
snippet with 'charac'ter'.
snippet with ARG1 arguments and characters {1}.
所以基本上发生的事情是:一旦出现'
(单引号)字符,就不再填写参数并且不再呈现单引号。有趣的是,当单独应用参数或单引号时,spring 没有问题。
我能够通过使用 2x 单引号来修复测试场景 4,如下所示:
test.key4 = snippet with {0} arguments'' and ''characters {1}.
哪个也正确呈现
snippet with ARG1 arguments' and 'characters ARG2.
当然这是维护的噩梦:所有包含单引号但没有参数的属性都应该有 1x 单引号,并且所有包含单引号字符和参数的属性都需要 2x 单引号。
为什么会这样,有没有办法解决这种不良行为?