3

我正在用 groovy 编码,并试图返回一些 javascript。这是我需要返回一个包含大括号的字符串的问题,当然 groovy 将其读取为错误。这是一个简单的例子:

${ i == 0 ? '{' : '}, {' }  

我想返回:
{ 或
},{
计划和简单。

${ i == 0 ? 'should be left brace' : "should be right brace coma left brace" }

花括号可以转义吗,类似于转义引号?
我试过了:

${ i == 0 ? '\{' : '\}, \{' }    

${ i == 0 ? '{{' : '}}, {{' }

谢谢。

4

2 回答 2

6

我假设问题发生在 GSP 页面中。您可能得到的错误应该类似于以下错误:

expecting ''', found '\n' @ line 57, column 80.
it) { return i == 0 ? '{' : ' })

一种解决方案是对左右花括号使用 Unicode 表示:

${ i == 0 ? "\u007B" : "\u007D,\u007B" }
于 2011-04-21T07:23:00.583 回答
1

这对我有用:

def i = 1
assert "},{" == "${i == 0 ? '{' : '},{'}"
于 2011-04-21T02:45:54.443 回答