如何在JSP

时间:2017-06-21 02:07:32

标签: javascript java jsp internationalization

目前,我们的应用程序支持i18n。 我们为每个Locale都有一个属性文件。 对于英语,我们能够成功显示属性文件中定义的占位符。

问题

当我们将应用程序中的区域设置/语言设置从英语更改为法语时,我们无法替换占位符。 占位符 - 字符串日期 - 这是从控制器成功返回的,但仍然无法在UI页面上替换。

这是因为对于法语语言环境和语言环境而言,JSP中指定的键的完整值未正确呈现。因此,占位符不会被替换。

我们面临的特殊问题是智能报价(d'essai) 此字符的Unicode:U + 00B4

我们尝试使用Meta& amp ;;在JSP页面中放置UTF-8编码。页面指​​令,但仍然没有解决问题。

非常感谢任何帮助。

我的代码片段

<fmt:message bundle="${myBundle}" key="myKey"><fmt:param value="${nextDateInString}"/></fmt:message>

Votrepériodes'essaigratuit prend fin le {0}

正如您所看到的,{0}未被动态替换为法语区域设置,而对于英语,它正在按预期工作。

尝试使用StringEscapeUtils.escapeJavascript(myMessageFromProperties) 也没帮忙

1 个答案:

答案 0 :(得分:0)

单引号是MessageFormat-Strings中的特殊字符,用于引述文本,然后不对其进行处理。请参见Java API MessageFormat

您需要两个单引号将其转义并显示一个单引号。