FreeMarker 설계 가이드 - 2
, 데이터 모델
(
1
) 기본
l
빠른 입문에서 템플릿에 사용되는 세 가지 기본 대상 유형을 소개했는데 그것이 바로 scalars,hashes,sequences입니다. 사실 더 많은 능력을 가질 수 있습니다.
Ø
scalars: 메모리 단수
Ø
hashes: 다른 대상을 충당하는 용기입니다. 각각 유일한 검색 이름과 연결됩니다.
Ø
sequences: 다른 대상의 용기를 충당하고 순서대로 접근
Ø
방법: 전달된 매개 변수를 계산하여 새로운 대상으로 결과를 되돌려줍니다
Ø
사용자 정의 FTL 태그:매크로 및 변환기
l
일반적으로 각 변수는 한 가지 능력만 가지지만 다음 예와 같이 한 변수는 여러 가지 능력을 가질 수 있습니다.
(root)
|
+- mouse = "Yerri"
|
+- age = 12
|
+- color = "brown">
l
mouse는 scalars이자 hasheses로 위의 데이터 모델을 아래의 템플릿에 통합합니다.
${mouse} <#-- use mouse as scalar -->
${mouse.age} <#-- use mouse as hash -->
${mouse.color} <#-- use mouse as hash -->
l
출력 결과:
Yerri
12
brown
(
2
)
Scalar
변량
l
Scalar 변수는 다음과 같은 단일 값을 저장합니다.
Ø
문자열:템플릿에 큰 따옴표(작은 따옴표 또는 큰 따옴표)로 묶은 간단한 텍스트
Ø
숫자:템플릿에서 직접 숫자 값 사용
Ø
날짜: 날짜/시간과 관련된 데이터를 저장합니다. 날짜, 시간 또는 날짜-시간(Timestamp)일 수 있습니다.일반적인 경우, 날짜 값은 프로그래머가 데이터 모델에 추가하고, 디자이너는 그것들을 표시하기만 하면 된다
Ø
부울 값:true 또는 false, 일반적으로 <#if...> 태그에서 사용
(
3
)
hashes
、
sequences
및 컬렉션
l
일부 변수는 표시할 수 있는 내용이 없는 컨테이너로 다른 변수를 포함하는 두 가지 유형이 있습니다.
Ø
hashes: 유일한 검색 이름과 그에 포함된 모든 변수가 연결되어 있습니다
Ø
sequences: 숫자를 사용하여 모든 변수와 연결합니다. 색인 값은 0에서 시작합니다
l
집합 변수는 보통 sequences와 유사합니다. 접근할 수 없는 크기와 색인을 사용해서 하위 변수를 얻을 수 없는 경우를 제외하고는.집합은 <#list...> 명령으로만 사용할 수 있는 제한된 sequences로 볼 수 있습니다
(
4
) 방법
l
방법 변수는 일반적으로 주어진 매개 변수에 근거하여 계산한다
l
다음 예제에서는 메소드 변수 avg를 데이터 모델에 배치하여 숫자 평균을 계산하는 데 사용한다고 가정합니다.
The average of 3 and 5 is: ${avg(3, 5)}
The average of 6 and 10 and 20 is: ${avg(6, 10, 20)}
The average of the price of python and elephant is: ${avg(animals.python.price, animals.elephant.price)}
(
5
) 매크로 및 변환기
l
매크로 및 변환기 변수는 사용자 정의 명령 (사용자 정의 FTL 태그) 이며, 이 고급 기능들은 뒤에 설명됩니다.
(
6
) 노드
l
노드 변수는 트리 구조의 노드를 나타내며, 일반적으로 XML 처리에서 사용되며, 다음 전문 섹션에서 설명합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.