1. 백엔드 Person 엔티티 코드(C#)
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
//매개변수 없는 생성자
public Person(){}
//매개변수가 있는 생성자
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
//매개변수 없는 인스턴스 메서드
public string getMyName()
{
return this.name;
}
//다중 매개변수 인스턴스 메서드
public string JoinStr(string str1, string str2)
{
return str1 + str2;
}
}Code language: C# (cs)
C# 백엔드 코드에서 객체 변수 설정
Person pTest = new Person("Tom", 22);
context.Put("pTest", pTest);Code language: JavaScript (javascript)
2. VTL 템플릿 코드 & 렌더링 설명
메서드 호출<br />
$pTest.getMyName();
#set($a = "hello")
#set($b = "foxdevelop")
$pTest.JoinStr($a, $b);Code language: PHP (php)
1. $pTest.getMyName()
- 객체의매개변수 없는 메서드
getMyName()호출 - 반환값
Tom
✅ Velocity 매개변수 없는 메서드 호출:괄호
()생략 가능,$pTest.getMyName는$pTest.getMyName()와 동일
2. $pTest.JoinStr($a, $b)
- 문자열 매개변수 두 개를 받는 메서드 호출
- VTL이 먼저
$a、$b를 해석한 뒤 실인자"hello"、"foxdevelop"전달 - 문자열 결합 결과 반환:
hellofoxdevelop
요약
- 메서드 이름은 대소문자를 엄격히 구분
C#getMyName()≠GetMyName(),템플릿은 코드 표기와 일치해야 합니다. - 매개변수는 변수를 그대로 사용
따옴표를 추가하지 마세요,$pTest.JoinStr($a,$b)가 올바릅니다;$pTest.JoinStr("$a","$b")로 쓰면 리터럴 문자열”$a”가 전달됩니다 - 속성과 메서드 구분
$pTest.Name→ 속성 접근(getter)$pTest.getMyName()→ 메서드 호출
- 반환값 자동 출력
템플릿에$객체.메서드()를 적으면 Velocity가 반환값을 자동으로 출력;출력이 필요 없으면#set으로 결과를 받습니다:
#set($result = $pTest.JoinStr($a,$b))Code language: PHP (php)
3. 최종 페이지 렌더링 결과
메서드 호출
Tom;
hellofoxdevelop;
확장 메서드
Previous: 변수 경계 보충 설명
Next: 이스케이프와 if 조건문