[java script]
- eval() : 함수를 작동시킬 때 사용하는 함수
[java]
String abc = null;
if(abc.equals("")) {
//error - String.equals.object
//abc=null이기 때문에 equals()가 작동x
//null.equals(공백) - fail
}
if("".equals(abc)) {
//ok - String.equals.object
//공백.equals(null)은 작동o
}
⛔ invoke
⛔ bind
[velocity]
파싱 (Parse)
명령어 #parse는 템플릿 디자이너가 VTL이 지정되어 있는 동적인 템플릿을 포함하는 local file을 끼워넣도록 해준다. Velocity는 이 파일에 명명된 VTL을 분석하고 평가된 결과를 #parse 명령이 정의된 위치에 정확히 삽입한다.
아래는 #parse시 참고할 사항이다.
파일의 내용은 템플릿 엔진을 통해 파싱된다.
안전상의 이유로, 파일은 오직 TEMPLATE ROOT 아래에만 위치해야 한다.
#parse( "me.vm" )
앞서 나온 #include 명령처럼, #parse 역시 변수를 취할 수 있다. 주의해야 할 것은 #include 명령과 다르게, #parse는 단지 하나의 파일만을 취할 수 있다는 점이다.
Velocity는 또한 #parse 문장을 포함하고 있는 템플릿을 #parse 인자로 가질 수 있다.
파싱되는 파일의 제한을 위한 최적의 기본값은 10이며 velocity.properties 파일내에 directive.maxdepth=10 이라는 설정을 통해 이를 제어할 수 있다.
아래 예제를 보자.
1) default.vm
Count down.
#set( $count = 8 )
#parse( "parsefoo.vm" )
All done with dofoo.vm!
2) parsefoo.vm
#set( $count = $count - 1 )
#if( $count > 0 )
#parse( "parsefoo.vm" )
#else
All done with parsefoo.vm!
#end
위 예제에 따라 default.vm에서 $count는 8부터 count down하면서 parsefoo.vm을 파싱하게 된다.
그리고 count가 0에 도달할 때, Velocity는 "All done with parsefoo.vm!" 이라는 메세지를 표시하고, 이 시점에서, 제어권은 default.vm으로 돌아가 "All done with dofoo.vm!" 이라는 메시지를 출력할 것이다.
출처: https://androphil.tistory.com/525 [소림사의 홍반장!]