2016-11-08 14 views
1

다음은 3 개의 INT 매개 변수입니다. a, b, c. 그리고 1 문자열 매개 변수 : d. 여기 는 자바 코드 :jexl에서 if-else를 실행하는 방법은 무엇입니까?

if (a>1) return c+d; 
if (b<2) return c-d; 
if (d.equals("123") return c*d; 
return c+1; 

어떻게 Jexl에 위의 코드를 설정하는? var를 사용하는 것을 포함하여 여러 번 시도했습니다. 하지만 항상 null을 반환합니다.

답변

2

아마도 스크립트 대신 JEXL 표현식을 사용합니다. Ternary 조건부 표현식 만 사용할 수 있습니다. 위해 스크립트에서 사용되어야하는 동안 경우 - 다른, 반환 :

JexlEngine jexl = new JexlBuilder().create(); 
JexlScript script = jexl.createScript(scriptText); 
result = script.execute(context); 

는 자바 독에서 http://commons.apache.org/proper/commons-jexl/reference/syntax.html

를 참조하십시오

식 스크립트는 다른 - 그것은 단순히이다 다중 표현식이 아니라 단일 표현식에 대한 참조. 이것은 'if', 'for', 'while', 'var'및 블록 '{'... '}'이 표현식에서 허용되지 않음을 의미합니다.

스크립트는 주어진 JexlContext 변수 세트로 실행될 수있는 유효한 JEXL 구문입니다. 스크립트는 세미콜론으로 구분 된 명령문 그룹입니다. 문은 블록 (코드가 포함 된 중괄호), if 및 while과 같은 제어문, 표현식 및 할당 문일 수 있습니다.