변수 경계 보충 설명

변수 기본 설정:#set ($valok = "hello foxdevelop")

변수 경계 ${}. 접근 차이 분석

코드렌더링 결과원리 설명
$valokhello foxdevelop기본 변수 출력
$valok.comhello foxdevelop.comVelocity가 valok 객체의 cn 속성/메서드를 호출하려 합니다. 문자열에 cn 메서드가 없으므로 변수와 접미사가 그대로 출력됩니다
${valok}.comhello foxdevelop.com{}가 변수 범위를 고정하며 valok 렌더링 뒤에 .com 문자열을 붙입니다(권장하는 연결 문법)
$!valok.comhellofoxdevelop.com$! 조용한 참조:변수가 존재하면 $valok와 동일하고 없을 때는 빈 문자열을 출력하며 $xxx를 그대로 보여주지 않습니다
${valok.com}빈 값valok.com 속성을 읽으려 시도합니다. 문자열에 com 속성이 없어 변수가 없는 것으로 처리됩니다. 빈 값을 원한다면 $!{valok.com}을 사용하세요


${valok}.cn ✅ 변수 + 접미사 연결
${valok.cn} ❌ valok 객체 안의 cn 속성 접근

작은따옴표 / 큰따옴표 & 변수 붙여쓰기

코드렌더링 결과원리 설명
what$valokwhathello foxdevelop직접 연결, Velocity가 자동으로 변수 경계를 인식
what$"valok"what$”valok”❌문법 오류. $ 바로 뒤에 따옴표를 쓸 수 없어 변수를 분석할 수 없음
what"$valok"what”hello foxdevelop따옴표는 일반 문자일 뿐 템플릿 안에서 문자열 구문으로 작동하지 않고 변수는 정상 처리됨
what'$valok'what’hello foxdevelop위와 동일, 작은따옴표도 평범한 문자
$valokwhat$valokwhat❌변수 인식 불가! Velocity가 valokwhat 전체를 변수명으로 보고 없으면 원문을 출력
${valok}whathello foxdevelopwhat✅중괄호로 범위를 고정, 변수와 글자가 붙는 문제 해결

정리

  1. 변수가 다른 글자와 이어질 때 반드시 ${변수이름} 사용
    잘못된 예:$valokwhat;올바른 예:${valok}what
  2. 접미사 붙일 때:${valok}.cn 이지 ${valok.cn}으로 쓰지 마세요
  3. $!변수 조용한 참조:변수가 없으면 빈 값이 나오고 $xxx가 출력되지 않음
  4. 템플릿 HTML 안의 따옴표는 그냥 문자#set 할당 구문 안에서만 작은따옴표(변수 해석 안함), 큰따옴표(변수 해석함) 차이가 생깁니다
#set($a = "$valok") // 큰따옴표:변수 해석, a=hello bamn
#set($a = '$valok') // 작은따옴표:변수 해석 안함, a=$valokCode language: PHP (php)

변수 경계 보충 설명

답글 남기기

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