템플릿 안에서 변수 설정하기

지금까지 배운 변수는 C# 백엔드 코드에서 정의한 뒤 템플릿에서 사용하는 방식이었습니다. 사실 set 지시자를 이용해 템플릿 내부에서 직접 변수를 선언할 수 있습니다.

1. 변수 정의 #set()

변수를 정의하는 두 가지 방식:
방식1: 백엔드 C#/Java 코드에서 미리 변수를 정의하고 템플릿 페이지에서 읽어오기;
방식2: 템플릿 안에서 #set()으로 직접 변수 정의(이번 강의 핵심)

#set($name = "hello foxdevelop.com")
#set($okay = "common baby")
#set($nameokay = "$name|$okay")Code language: PHP (php)
  • #set(변수 = 값):문자열, 숫자, 배열, 객체 속성, 다른 변수 할당을 지원합니다
  • 약타입 언어이므로 변수 타입 선언이 필요 없습니다

2. 변수 렌더링 문법 및 규칙

2.1 기본 형식

  • $name:변수가 없으면 $name 문자열 그대로 출력
  • $!name자동 비우기 렌더링,변수가 없을 때 빈 값 출력. 페이지에 $xxx가 보이는 것을 막으므로 권장
  • 권장 표준 문법:${name}(중괄호로 변수 범위를 명확히 구분)

2.2 경계 문제 예시

#set($name = "hello")
$namehello     × 엔진이 $namehello 라는 변수로 인식해 찾지 못함
${name}hello   √ 정상, $name을 해석한 뒤 hello 텍스트 이어 붙임Code language: PHP (php)

3. 한 줄 주석 ##

## 여기는 주석, 최종 결과에 출력되지 않음
#set($name = "test") ## 줄 끝에도 주석 작성 가능Code language: PHP (php)
  1. 주석 내용은최종 렌더링된 페이지에 출력되지 않습니다;
  2. 브라우저에서 페이지 소스 보기를 해도주석 텍스트가 보이지 않습니다(템플릿 엔진 처리 단계에서 제거).

4. #set에서 지원하는 여러 할당 타입

## 문자열 할당
#set($name = "hello world")

## 변수를 다른 변수에 복사
#set($obj= $name)

## 객체 속성 할당
#set($obj.Friend = "monica")
#set($obj.Blame = $whitehouse.Leak)

## 메서드 호출 결과 할당
#set($obj.Plan = $spindoctor.weave($web))

## 숫자 할당
#set($obj.Number = 123)

## 배열 할당
#set($obj.Say = ["Not", $my, "fault"])Code language: PHP (php)

5. 변수가 존재하지 않을 때 특수 규칙

$sadfsdfsdCode language: PHP (php)

템플릿 엔진이 해당 변수를 찾지 못할 경우:

  • 일반 문법 $sadfsdfsd:문자열 $sadfsdfsd 그대로 출력
  • $!sadfsdfsd로 작성:변수가 없으면 빈 문자열 출력

템플릿 안에서 변수 설정하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다