2011-04-21 6 views
0

저는 groovy로 코딩 중이며 일부 자바 스크립트를 반환하려고합니다. 여기에 중괄호가 포함 된 문자열을 반환해야하고 그루비가 오류로 읽어야하는 문제가 있습니다.Groovy : 문자열 안에 중괄호를 이스케이프 처리합니다.

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

나도 반환 할 :
{ 또는
}, {
계획과 간단하게 다음은 간단한 예입니다.

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

따옴표를 이스케이프 처리 할 때와 마찬가지로 중괄호를 이스케이프 처리 할 수 ​​있습니까?
가 나는 시도했다 :

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

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

감사합니다.

답변

5

GSP 페이지에 문제가 있다고 가정합니다. 당신은 아마 얻을 오류는 이것에 유사합니다 :

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

하나의 솔루션은 왼쪽과 오른쪽 중괄호에 대한 유니 코드 표현을 사용하는 것입니다

${ i == 0 ? "\u007B" : "\u007D,\u007B" } 
+1

일을. 예, GStringTemplateEngine의 GString 구문 분석은 컴파일러의 메서드보다 훨씬 덜 복잡합니다. 그냥 다음에 나오는 "}"을 찾아서 탈출 할 방법이 없습니다. –

+0

해당 .gsp 페이지입니다. 위의 유니 코드 예제를 시도했습니다. 그것은 아무 특성도에서 것과 같이 아무것도 돌려 보냈다. – Fresheyeball

+0

$ {} 표현식을 사용했던 컨텍스트를 제공 할 수 있습니까? –

2

이 나를 위해 작동합니다

def i = 1 
assert "},{" == "${i == 0 ? '{' : '},{'}" 

당신은 그루비가 오류를보고 몇 가지 코드를 공유 할 수 있습니까?

관련 문제