0

我在一个 Java EE Web 应用程序上工作,该应用程序结合使用 Dojo 和纯 javascript 作为前端。

我们发现,当在 javascript 中使用 ResourceBundle 属性时,在某些情况下它们最终会破坏代码。具体来说,当属性包含引号(单引号和双引号)和转义序列(\n、\s ...)时,就会发生这种情况。

解决方案似乎是包含额外的转义字符。例如,当在 Js 警报中使用 \n 以正确呈现换行符时,需要在前面加上一个斜杠 (\\n),如果没有转义,引号会出于明显的原因提前截断内容。

到目前为止,我们对上述问题的解决方案是在属性文件本身中添加额外的转义字符。但这是我们想要摆脱的东西。看起来这可能是一个普遍存在的问题,我想听听专家们如何解决这个问题。

当前使用情况:key=A newline is represented with \\n and this \" is within quotes \".

设想用途:key=A newline is represented with \n and this " is within quotes ".

PS:我们通常使用<fmt:message>标签在前端访问这些值并在 javascript 中使用。

4

1 回答 1

0

考虑使用 StringUtils。如果有一种方法可以像您一样转义输入。

http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringEscapeUtils.html#escapeJava(java.lang.String)

于 2012-12-21T11:01:24.990 回答