【问题标题】:Quote issues reading properties file using fmt:message in JavaScript引用在 JavaScript 中使用 fmt:message 读取属性文件的问题
【发布时间】:2015-07-14 18:10:52
【问题描述】:

我正在使用从属性文件中读取文本。但是当我像这样在 JavaScript 中使用它时:

alert('<fmt:message key="mykey" />');

如果该键的属性文件中定义了单引号,则会出现错误。如果我将单引号改为双引号,如果在属性文件中定义了双引号,则会出现错误。

有什么想法吗?

【问题讨论】:

  • 您需要在属性文件中转义单引号。 Intead ofjava's try java''s. IE。两个单引号
  • 我们不想更改属性文件。本地化用两个单引号代替一个单引号是不好的,比如在意大利语中,单引号属于单词。
  • 单引号应该从服务器端转义。
  • 是的,但它由 JSTL 控制。只是想看看是否有 JSTL 函数可以做到这一点。
  • ${fn:replace(yourString, ''', '\\'')}

标签: java jsp jstl


【解决方案1】:

您必须使用例如Apache commons StringEscapeUtils 动态转义字符串。您可以简单地将此方法包装到自定义 EL 函数或 JSP 标记中。

【讨论】:

  • 谢谢。是的,如果我找不到更简单的方法,这是一个很好的解决方案。只是想知道是否有 JSTL 功能或一些网络技术可以解决这个问题。
【解决方案2】:

您可以使用与车把相同的技术:将您的消息放在

<script type="text/fmt" id="mykey"><fmt:message key="mykey" /></script>

然后:

alert(document.getElementById("mykey").innerHTML);

或者,如果您使用的是 jQuery:

alert($("#mykey").text());

【讨论】:

  • 如果使用&lt;c:out&gt; 来转义消息中的HTML 特殊字符就可以了。
  • @JBNizet 不需要,除非您的消息包含
  • @MauricePerry 谢谢。我认为这可以工作。我试图将值分配给变量,但问题是该值应该有引号。但是我还在想有没有其他的解决办法,因为我有很多这样的说法。
猜你喜欢
  • 2013-02-10
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2018-12-28
  • 2016-09-08
相关资源
最近更新 更多