I‑Código da entidade Person no back‑end (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; }
}
//Construtor sem parâmetros
public Person(){}
//Construtor com parâmetros
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
//Método de instância sem parâmetros
public string getMyName()
{
return this.name;
}
//Método de instância com múltiplos parâmetros
public string JoinStr(string str1, string str2)
{
return str1 + str2;
}
}Code language: C# (cs)
Definir variáveis de objeto no código back‑end cs
Person pTest = new Person("Tom", 22);
context.Put("pTest", pTest);Code language: JavaScript (javascript)
II‑Código do modelo VTL & instruções de renderização
Chamada de método<br />
$pTest.getMyName();
#set($a = "hello")
#set($b = "foxdevelop")
$pTest.JoinStr($a, $b);Code language: PHP (php)
1. $pTest.getMyName()
- Invoca o método sem parâmetros do objeto
getMyName() - Retorna
Tom
✅ No Velocity, ao chamar método sem parâmetros os parênteses
()podem ser omitidos.$pTest.getMyNameé equivalente a$pTest.getMyName()
2. $pTest.JoinStr($a, $b)
- Chama o método que recebe dois parâmetros do tipo string
- O VTL primeiro interpreta
$ae$b, passando os valores reais"hello"e"foxdevelop" - Retorna o resultado da concatenação:
hellofoxdevelop
Resumo
- Diferença entre maiúsculas e minúsculas no nome do método é obrigatória
No C#,getMyName()≠GetMyName(); o modelo deve seguir exatamente a escrita do código. - Passe variáveis diretamente nos parâmetros
Não use aspas extras.$pTest.JoinStr($a,$b)está correto; evite escrever$pTest.JoinStr("$a","$b")(isso enviará o texto literal “$a”). - Diferenciar propriedades de métodos
$pTest.Name→ acessa uma propriedade (getter)$pTest.getMyName()→ invoca um método
- Valor de retorno é exibido automaticamente
Ao escrever diretamente$objeto.metodo()no modelo, o Velocity imprime automaticamente o valor retornado. Se não quiser exibir o resultado, use#setpara recebê‑lo:
#set($result = $pTest.JoinStr($a,$b))Code language: PHP (php)
III‑Saída renderizada da página final
Chamada de método
Tom;
hellofoxdevelop;
Métodos de extensão