【问题标题】:Eclipse incorrectly giving EL syntax errorEclipse 错误地给出 EL 语法错误
【发布时间】:2012-10-16 05:53:21
【问题描述】:

我有以下 EL 表达式:

${fn:escapeXml(fn:replace(response.distHeadline, "'", "\\'"))

基本上是双重转义“response.distHeadline”中的所有撇号,然后Xml 转义distHeadline。我这样做是因为我将它传递给 JavaScript 方法。但是在 Eclipse 中,它会在第一个引号上给出 EL 语法错误,然后当我自动格式化 (Control+Shift+F) 时,如果中断并将剩余的等式移动到下一行。

${fn:escapeXml(fn:replace(response.distHeadline, "
'", "\\'"))

所以当我发布页面时,等式不起作用。如果我手动将方程式全部放在一行上,它可以正常工作。

如何防止 Eclipse 认为存在错误或防止 Eclipse 将此等式分成两行。

下面的完整标签:

<img class="copy_identifier" onclick="getIdentifier('${response.filename}', '${fn:escapeXml(fn:replace(response.distHeadline, "'", "\\'"))}')" src="public/images/hyperlink_13x13.png"></img>

【问题讨论】:

  • 我对spring注解@Value("#{new Boolean(${mail.util.flag-mock})}")有同样的问题@

标签: eclipse el


【解决方案1】:

问题似乎是单引号在 ${fn:esca... 之前关闭单引号...

您将不得不努力更好地处理报价。我发现创建一个函数来处理这项工作通常比做所有这些内联引用更容易。

【讨论】:

  • 我无法将其传递给要处理的函数。当我尝试传递带有撇号的变量时,JavaScript 给了我一个错误。
  • 我在想你可以在尝试使用页面上的值之前转义 xml 并替换引号。
  • 是的,我只是在变量到达页面之前无法访问它们。
  • 但是你可以让几个javascript变量包含处理后的值,然后在getIdentifier调用中使用这些变量?
【解决方案2】:
    <c:set var="print" value="${fn:replace(response.distHeadline,'\\'','& # 9 2 ; & # 3 9 ;')}" />  

如果打印变量给你想要的输出,请告诉我!告诉我你是怎么做的!

【讨论】:

  • 当我使用 '\\'' 时页面不呈现,仅在我使用 "\\'" 时呈现
猜你喜欢
  • 1970-01-01
  • 2016-06-28
  • 2015-10-26
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
相关资源
最近更新 更多