1. 기본 문법
1. "#"은 #set, #if, #else, #end, #foreach, #end, #iinclude, #parse, #macro 등을 포함한 Velocity 스크립트 문을 식별하는 데 사용됩니다.
좋다:
#if($info.imgs)
<img src="http://VeVB.COm/ydmx_lei/blog/$info.imgs" border=0>
#또 다른
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#끝
2. "$"는 다음과 같은 객체(또는 변수로 이해)를 식별하는 데 사용됩니다.
예: $i, $msg, $TagUtil.options(...) 등
3. "{}"는 Velocity 변수를 명확하게 식별하는 데 사용됩니다.
예를 들어, 페이지에 $someonename이 있습니다. 이때 Velocity는 someonename을 변수 이름으로 사용합니다. 프로그램에서 someone 변수 바로 뒤에 이름 문자를 표시하려면 위의 레이블을 ${someone으로 변경해야 합니다. . }이름.
4. "!"는 존재하지 않는 변수를 공백으로 표시하는 데 사용됩니다.
예를 들어, 페이지에 $msg가 포함된 경우 msg 개체에 값이 있으면 msg 값이 표시됩니다. msg 개체가 없으면 $msg 문자가 페이지에 표시됩니다. 존재하지 않는 변수나 null 변수 값을 가진 객체를 공백으로 표시하려면 변수 이름 앞에 "!" 기호만 추가하면 됩니다.
예: $!msg
2. EasyJWeb의 모범 사례
이론적으로는 EasyjWeb 템플릿에서 모든 Velocity 스크립트와 기능을 사용할 수 있지만 인터페이스 템플릿에 복잡한 스크립트 표현식을 너무 많이 사용하지 않는 것이 좋습니다. 변수 선언, 논리 연산자 등을 인터페이스 템플릿에 추가하는 것은 말할 것도 없습니다.
EasyJWeb에서는 기본적으로 모든 애플리케이션 템플릿의 요구 사항을 충족할 수 있는 다섯 가지 기본 템플릿 스크립트 문을 제공합니다. 이 네 가지 템플릿 문은 매우 간단하며 인터페이스 디자이너가 직접 추가할 수 있습니다. 현재 많은 EasyJWeb 애플리케이션 사례에서는 모든 인터페이스 템플릿 중에서 다음 네 가지 간단한 템플릿 스크립트 문만 구현할 수 있음을 알 수 있습니다.
1. $!obj는 객체 결과를 직접 반환합니다.
예를 들어, html 태그에 java 객체 msg의 값을 표시합니다. <p>$!msg</p>
HtmlUtil 개체가 처리한 msg 개체의 값을 html 태그 <p>$!HtmlUtil.doSomething($!msg)</p>에 표시합니다.
2. #if($!obj) #else #판단문 종료
예: EasyJWeb의 다양한 오픈 소스 애플리케이션에서 팝업 프롬프트 메시지 msg의 예를 자주 볼 수 있습니다.
#if($msg)
<스크립트>
경고('$!msg');
</script>
#끝
위 스크립트는 개체 msg 개체가 존재하는 경우 <script>와 같은 다음과 같은 내용이 출력된다는 의미입니다.
3. #foreach( $info in $list) $info.someList #end 컬렉션 목록의 개체를 읽고 그에 따라 처리하는 루프입니다.
예: EasyJF 오픈 소스 포럼 시스템(0.3)의 포럼 홈페이지에 인기 있는 주제를 표시하기 위한 html 인터페이스 템플릿 스크립트:
#foreach($hotList1의 $정보)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#끝
위 스크립트는 hotList1 컬렉션의 개체를 반복하고 개체의 관련 콘텐츠를 출력함을 나타냅니다.
4. #macro(macroName)#end는 스크립트 함수(매크로) 호출이므로 인터페이스 템플릿에서 광범위하게 사용하는 것은 권장되지 않습니다.
예: EasyJWeb Tools를 사용하여 빠르게 생성된 추가, 삭제, 수정 및 쿼리의 예에서 목록의 제목 표시줄을 클릭하면 오름차순 및 내림차순으로 표시됩니다. 이는 EasyJWeb 애플리케이션에서 자주 볼 수 있는 템플릿 콘텐츠입니다. 정렬 상태를 표시합니다.
함수(매크로) 정의, 일반적으로 첫 번째 위치에 위치
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://VeVB.COm/ico/${orderType}.gif">
#끝
#끝
구체적인 호출은 다음과 같습니다: <font color="#FFFFFF">title#orderPic("title")</font>
5. #inclue("템플릿 파일 이름") 또는 #parse("템플릿 파일 이름") 파일을 포함합니다.
각 웹사이트의 상단, 하단 컨텐츠 등 동일한 내용의 페이지를 처리하는데 주로 사용됩니다.
사용 방법은 EasyJF 오픈소스 블로그와 EasyJF 오픈소스 포럼의 애플리케이션을 참고하세요!
예: #parse("/blog/top.html") 또는 #include("/blog/top.html")
구문 분석과 포함의 차이점은 포함된 파일에 Velocity 스크립트 태그가 있는 경우 추가로 구문 분석되고 포함은 그대로 표시된다는 것입니다.
3. #set의 사용에 대해서
최후의 수단으로 페이지 보기에서 Velocity 스크립트 변수를 직접 선언하지 마십시오. 즉, #set을 가능한 한 적게 사용하십시오. 때때로 페이지에 일련번호를 표시해야 하지만 프로그램 개체에 이 일련번호 속성이 포함되어 있지 않습니다. 예를 들어 순환 시스템에서는 다음과 같습니다.
#세트($i=0)
#foreach($list의 $정보)
일련번호:$i
#세트($i=$i+1)
#끝
4. 속도 스크립트 구문 요약
1. 명령문: #set ($var=XXX)
왼쪽에는 다음 내용이 포함될 수 있습니다.
다음과 같이 코드 코드를 복사합니다 .
변수 참조
문자열 리터럴
속성 참조
방법 참조
숫자 리터럴 #set ($i=1)
ArrayList #set ($arr=["yt1","t2"])
산술 연산자
2. 참고:
한 줄 ## XXX
여러 줄 #* xxx
xxxxx
xxxxxxxxxxxx*#
참조 참조 유형
3. 변수
"$"로 시작하며 첫 번째 문자는 문자여야 합니다. 문자 뒤에 VTL 식별자(a .. z 또는 A .. Z)가 옵니다.
변수에는 다음 문자가 포함될 수 있습니다.
알파벳(a .. z, A .. Z)
숫자(0 .. 9)
하이픈("-")
밑줄("_")
4.속성
$Identifier.Identifier
$user.name
해시테이블 사용자의 이름 값입니다. 유사: user.get("name")
5. 방법
객체 user.getName() = $user.getName()
6.공식 참조 표기법
{}를 사용하여 문자열에서 변수 이름을 분리합니다.
좋다
#세트($user="csy"}
${사용자}이름
csyname 반환
$username
$!사용자 이름
$와 $의 차이!
사용자 이름을 찾을 수 없으면 $username은 "$username" 문자열을 반환하고 $!username은 빈 문자열 ""을 반환합니다.
7. 큰따옴표와 큰따옴표
#세트($var="헬로")
test"$var"는 testhello를 반환합니다.
test'$var'는 test'$var'를 반환합니다.
stringliterals.interpolate=false를 설정하여 기본 처리 방법을 변경할 수 있습니다.
8. 조건문
다음과 같이 코드 코드를 복사합니다 .
#if( $foo )
<strong>속도!</strong>
#끝
#if($foo)
#elseif()
#또 다른
#끝
$foo가 null이거나 Boolean 객체의 false 값일 때 실행됩니다.
9. 논리 연산자: == && ||
10. 루프 문 #foreach($var in $arrays) //컬렉션에는 Hashtable 또는 Array의 세 가지 유형의 Vector가 포함되어 있습니다.
#끝
#foreach( $allProducts의 $product )
<li>$제품</li>
#끝
#foreach( $allProducts.keySet() 의 $key )
<li>키: $key -> 값: $allProducts.get($key)</li>
#끝
#foreach( $customerList의 $customer)
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#끝
11. VelocityCount 변수는 구성 파일에 정의되어 있습니다.
다음과 같이 코드 코드를 복사합니다 .
# 루프 카운터의 기본 이름
# 변수 참조.
directive.foreach.counter.name = 속도카운트
# 루프의 기본 시작 값
# 카운터 변수 참조.
directive.foreach.counter.initial.value = 1
12. 파일 포함
#include( "one.gif","two.txt"," three.htm" )
13. 가져오기 스크립트 구문 분석
#parse("me.vm" )
14. #stop 실행을 중지하고 반환합니다.
15. 함수를 포함한 함수 지원과 동일한 매크로 Velocimacros를 정의합니다.
#매크로(d)
<tr><td></td></tr>
#끝
부르다
#디()
16. 매개변수가 있는 매크로
다음과 같이 코드 코드를 복사합니다 .
#macro(테이블 행 $color $somelist )
#foreach( $somelist의 $something )
<tr><td bgcolor=$color>$뭔가</td></tr>
#끝
#끝
17. 범위 연산자
#foreach( [1..5]의 $foo )