gpt4 book ai didi

spring-mvc - messages.properties 中带双引号的字符串无法正确显示

转载 作者:行者123 更新时间:2023-12-01 23:55:36 25 4
gpt4 key购买 nike

我正在做一个 Spring Web 应用程序。在我的 messages.properties 文件中,有一个单行字符串,如下所示:

label.name.tooltip=The "name" field ...

我的 JSP 文件按如下方式显示此字符串:
<spring:message code="label.name.tooltip" />

但是,显示的文本只有“The”,这意味着“name”的部分被剪切了。

我不知道为什么会这样。谷歌搜索以及在双引号之前添加反斜杠等方法不起作用。

问候和感谢!

更新

整个问题是由我使用A标签的title属性中的字符串引起的,如下所示:
a href="#" data-toggle="tooltip" title="<spring:message code="label.name.tooltip" />

正如 Bossie 所暗示的,浏览器会删除从双引号开始的字符串内容。

Misha 做了相当多的解释,这有助于我更多地了解消息是如何工作的。谢谢,米莎!!!

我在 SO 找到了一个解决方案,在我的情况下,使用“名称”而不是双引号。希望这对其他人有帮助。

最佳答案

Spring 使用 MessageSource 解析消息代码,而后者又使用 MessageSourceSupport 目的。如果您的消息是 MessageFormat 应用程序的受害者规则(定义 here ),您可以使用一些单引号来转义双引号:

The '"'name'"' field should not be null, empty, or start with an integer.

不幸的是, MessageFormat没有说明双引号是特殊字符,所以这实际上只是在黑暗中拍摄。

编辑:

好的。我去试了一下。按原样加载双引号没有问题。我的 messages.properties有一行:
test.message = "Hello, world!"

我的测试看起来像这样:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestConfiguration.class)
public class TestQuotes {

@Autowired
private MessageSource source;

@Test
public void test() {
assertEquals(
"\"Hello, world!\"",
source.getMessage("test.message", null, Locale.US));
}
}

因此,唯一的结论是 .jsp处理器使用您的双引号 - 它绝对不是与消息源相关的对象。我不知道是什么对象呈现你的 .jsp ,但你应该仔细看看它对解析注入(inject)值有什么规则(也许可以试试双双引号之类的)。

关于spring-mvc - messages.properties 中带双引号的字符串无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com