Velocity 안내

8483 단어 strutsvelocity
1.변수
(1)변수의 정의:
#set($name = "hello")      설명:velocity 에서 변 수 는 약 한 유형 입 니 다.
\#set 명령 을 사용 할 때 두 따옴표 에 포 함 된 문자 문자열 은 다음 과 같이 해석 하고 재해 석 합 니 다.
#set($directoryRoot = "www" )
#set($templateName = "index.vm" )
#set($template = "$directoryRoot/$templateName" )
$template
출력:www/index.vm
주의:velocity 에서 2.5 달러 라 는 화폐 표 지 를 사용 하 는 것 은 문제 가 없습니다.왜냐하면 velocity 의 변 수 는 항상 대문자 나 소문 자로 시작 되 기 때 문 입 니 다.
(2)변수 규범 의 쓰기
${name},$name 이 라 고도 쓸 수 있 습 니 다.앞의 서법 을 제창 하 다.
예 를 들 어$vice 변 수 를 통 해 문자열 을 동적 으로 구성 하고 싶 습 니 다.
 Jack is a $vicemaniac.
원래 변 수 는$vice 였 는데 지금 은$vicemaniac 가 되 었 습 니 다.그러면 Veloctiy 는 도대체 무엇 을 원 하 는 지 모 릅 니 다.따라서 규범 화 된 격식 으로 써 야 한다. : Jack is a ${vice}maniac 는 현재 Velocity 에서 변수 가$vice 가 아니 라$vicemaniac 라 는 것 을 알 고 있 습 니 다.
메모:속성 을 참조 할 때{}을 추가 할 수 없습니다.
(3)변수의 할당: 
$name="hello"
할당 의 왼쪽 은 변수 나 속성 참조 여야 합 니 다.오른쪽 은 아래 여섯 가지 유형 중 하나 일 수 있다.
변수 참조,글자 문자열,속성 참조,방법 참조,글자 숫자,배열 목록.
아래 의 예 는 상술 한 모든 유형 을 보 여 줍 니 다.
\#set($monkey=$bill)\#\#변수 참조
\#set($monkey.Friend="monica")\#\#글자 문자열
\#set($monkey.Blame=$whitehouse.Leak)\#\#속성 참조
\#set($monkey.Plan=$spintdoctor.weave($web))\#\#방법 참조
\#set($monkey.Number=123)\#\#글자 숫자
\#set($monkey.say=["Not",$my,"fault"])\#\#배열 목록
주의:① 상기 예 에서 오른쪽 값 이 null 이면 왼쪽 값 이 할당 되 지 않 습 니 다.즉,이전 값 을 유지 하 는 것 입 니 다.
② velocity 템 플 릿 에서 정의 되 지 않 은 변 수 는 문자열 로 여 겨 집 니 다.예 를 들 면:
#set($foo = "gibbous") $moon = $foo 출력 결과:$moon = gibbous
③ velocity 템 플 릿 에 reference 를 대상 의 인 스 턴 스 변수 로 해석 하지 않 습 니 다.예 를 들 어$foo.Name 은 foo 대상 의 Name 인 스 턴 스 변수 가 아 닌 Foo 대상 의 getName()방법 으로 해 석 됩 니 다.예 를 들 면:
$foo.getBar()  $foo.Bar 와 같 음;
$data.getUser("jon")는$data.User("jon")와 같 습 니 다.
data.getRequest().getServerName()은
$data.Request.server Name 은${data.Request.server Name}과 같 습 니 다.
 
2.순환
#foreach ($element in $list)     This is $element.     $velocityCount #end
예:#set( $list = ["pine", "oak", "maple"])
#foreach ( $ element in  $ list)
$velocityCount
This is  $ element.
#end
출력 결과:
1 This is pine. 2 This is oak. 3 This is maple.
$list 를 순환 할 때마다$element 변 수 를 부여 합 니 다.$list 는 Vector,Hashtable 또는 Array 일 수 있 습 니 다.$element 에 분 배 된 값 은 자바 대상 이 며 변 수 를 통 해 인 용 될 수 있 습 니 다.예 를 들 어$element t 가 자바 의 Product 류 이 고 이 제품 의 이름 은 그의 getName()방법 으로 얻 을 수 있 습 니 다.
#foreach ( $key in $list.keySet())Key: $key -> Value: $list.get($key)
#end velocity
Velocity 는 특히 순환 횟수 를 얻 는 방법 도 제공 합 니 다.$velocity Count 변수의 이름 은 Velocity 의 기본 이름 입 니 다.
 
예:
First example:  #foreach ( $foo in [1..5] )    $foo  #end  Second example:  #foreach ( $bar in [2..-2] )    $bar  #end  Third example:  #set ( $arr = [0..1] )  #foreach ( $i in $arr )    $i  #end 위의 세 가지 예 의 출력 결 과 는 다음 과 같 습 니 다.  First example:  1 2 3 4 5  Second example:  2 1 0 -1 -2  Third example:  0 1
3.조건문
#if (condition)
#elseif (condition)
#else
#end
4.문장의 끼 워 넣 기
    #foreach ($element in $list)
       ## inner foreach 내 순환
       #foreach ($element in $list)
       This is $element. $velocityCount
inner

       #end
       ## inner foreach 내 순환 종료
    ## outer foreach
    This is $element.
    $velocityCount
outer

    #end
문장 에 도 다른 문장 을 삽입 할 수 있다.예 를 들 어\#if...\#else...\#end 등 이다.
5.주석(1)단행 주석:  ## This is a single line comment.(2)여러 줄 주석:  #*   Thus begins a multi-line comment. Online visitors won’t   see this text because the Velocity Templating Engine will  ignore it.  *#(3)문서 형식:  #**   This is a VTL comment block and   may be used to store such information  as the document author and versioning   information:   @version 1.1
   @author  xiao     *#。
6.Velocity 도 논리 AND,OR 와 NOT 연산 자 를 가지 고 있다.
...와 같다
## example for AND
#if($foo && $bar)
    This AND that
#end
예 에서\#if()명령 은$foo 와$bar 가 모두 사실 일 때 만 진실 입 니 다.$foo 가 가짜 라면 표현 식 도 가짜 입 니 다.그리고$bar 는 값 을 구하 지 않 습 니 다.$foo 가 진짜 라면 Velocity 템 플 릿 엔진 은$bar 의 값 을 계속 검사 합 니 다.$bar 가 진짜 라면 전체 표현 식 이 진짜 입 니 다.그리고 This AND that 를 출력 합 니 다.$bar 가 가짜 라면 전체 표현 식 이 가짜 이기 때문에 출력 되 지 않 습 니 다.
7.Velocity 의 매크로
Velocity 의 매크로 는 함수 로 이해 할 수 있 습 니 다.
① 매크로 의 정의#macro( $ 1 $ 2 …)    ( ) #end # ($ 1 $ 2 …)     : 。
8.#stop
   템 플 릿 엔진 을 실행 하지 않 고 되 돌려 줍 니 다.debug 에 적용 하 는 것 이 도움 이 됩 니 다.
9.\#include 와\#parse
\#include 와\#parse 의 역할 은 모두 로 컬 파일 을 도입 하 는 것 입 니 다.안전 을 위해 도 입 된 로 컬 파일 은 TEMPLATE 에 만 있 습 니 다.ROOT 목록 아래.
구별:
(1)\#include 와 달리\#parse 는 하나의 대상 만 지정 할 수 있 습 니 다.#include 는 여러 개 있 을 수 있 습 니 다.
여러 파일 을 도입 하려 면 쉼표 로 구분 하면 됩 니 다.\#include(one.gif,"to.txt","three.htm")는 괄호 안에 파일 이름 일 수 있 지만 변 수 를 사용 할 때 가 많 습 니 다.\#include("greetings.txt",$seasonalstock)
(2)\#include 가 도 입 된 파일 의 내용 은 템 플 릿 엔진 을 통 해 해석 되 지 않 습 니 다.
그리고\#parse 가 도입 한 파일 내용 Velocity 는 그 중의 velocity 문법 을 분석 하고 템 플 릿 에 넘 겨 줍 니 다.이 는 도 입 된 파일 을 파일 에 복사 하 는 것 과 비슷 하 다 는 뜻 입 니 다.
\#parse 는 재 귀적 으로 호출 할 수 있 습 니 다.예 를 들 어 dofoo.vm 에 다음 줄 이 포함 되 어 있다 면:
Count down.

#set ($count = 8)
#parse ("parsefoo.vm")

All done with dofoo.vm!
\#\#그러면 parsefoo.vm 템 플 릿 에 다음 과 같은 VTL 을 포함 할 수 있 습 니 다.
$count
#set($count = $count - 1)
#if ( $count > 0 )

#parse( "parsefoo.vm" )
#else

All done with parsefoo.vm!
\#end 의 표시 결 과 는:
Count down.
8
7
6
5
4
3
2
1
0
All done with parsefoo.vm!
All done with dofoo.vm!
메모:vm 에서\#parse 를 사용 하여 다른 vm 를 삽입 할 때의 변수 공유 문 제 를 사용 합 니 다.예:->a.vm 에 b.vm 를 끼 워 넣 기;->a.vm 에서 변 수 를 정의 합 니 다$param;->b.vm 에 서 는$param 을 직접 사용 할 수 있 으 며 제한 이 없습니다.그러나 특히 주의해 야 할 것 은 b.vm 에서 변수$param 을 동시에 정의 하면 b.vm 에서 b.vm 에서 정의 하 는 값 을 사용 합 니 다.
10.전의 문자'\'의 사용
reference 가 정의 되면 두 개의'\'는 하 나 를 출력 하 는 것 을 의미 합 니 다.'\'가 정의 되 지 않 으 면 방금 그대로 출력 했 습 니 다.예:
#set($email = "foo" )
$email
\$email
\\$email
\\\$email
출력:
foo$email\foo\$email
만약$email 이 정의 되 지 않 았 다 면
$email
\$email
\\$email
\\\$email
출력:
$email\$email\\$email\\$email
 
4.567914.내 장 된 대상 인 Velocity 는 일부 대상 을 내 장 했 고 vm 모델 에서 직접 호출 할 수 있 습 니 다.다음 과 같이 열거 할 수 있 습 니 다.$request,$response,$session.또한 템 플 릿 에$msg 내 메시지 도 구 를 사용 하여 Struts 의 국제 화 자원 을 방문 하여 국제 화 를 간편 하 게 실현 하 는 방법 도 사용 할 수 있 습 니 다.
배열 접근
배열 에 대한 접근 은 Velocity 에 문제 가 있 습 니 다.Velocity 는 대상 에 만 접근 할 수 있 는 방법 이 고 배열 은 특수 한 Array 이기 때문에 배열 은 순환 적 으로 열거 할 수 있 지만 특정한 위치 에 접근 하 는 요 소 를 찾 을 수 없습니다.예 를 들 어 strs[2],배열 은 고정 위치 요소 에 대한 접근 은 Array 의 반사 방법 get(Object array,int index)을 호출 했 습 니 다.반면 Velocity 는 이러한 접근 을 제공 하지 못 했 기 때문에 배열 은 List 등 다른 종류의 용기 로 포장 하거나 공용 Util 류 방식 으로 제공 하여 배열 대상 과 방문 할 위치 매개 변 수 를 전송 하여 필요 한 값 을 되 돌려 주 는 목적 을 달성 했다.

좋은 웹페이지 즐겨찾기