아파치 벨로시티 템플릿에서 빼기 연산을 위해 minus 기호(-)를 쓸때 주의사항
문제
템플릿에서 쓰는 정수 값 중에 빼기 연산을 이용할 일이 있어서 사용하려는데 특별히 문제 있어보이지 않는데 값이 안 나오거나 ParseErrorException
이 발생하는 증상을 확인
경과
검색을 해보니, 벨로시티의 identifier는 minus 를 valid 한 문자로 인정하기 때문에, 변수 이름에 -
가 붙어 있으면 빼기 연산이 되지 않고 -
를 포함한 새로운 변수로 인식함.
#set($idx = $rank-1)
#set($idx = ${rank - 1})
이렇게 하면 없는 변수를 참조하는 것이 된다.
#set($idx = ${rank}-1)
#set($idx = ${rank} -1)
이렇게 하면 ParseErrorException
이 발생한다.
#set($idx = $rank - 1)
#set($idx = ${rank}- 1)
#set($idx = ${rank} - 1)
이렇게 해야 원하는 결과를 얻을 수 있다.
결론
가장 안전하게는 -
기호 양 옆에 공백을 두면 된다.
ref:
- https://issues.apache.org/jira/browse/VELOCITY-542