Definir variáveis dentro do modelo

As variáveis estudadas até agora eram definidas no código‑behind C# e depois usadas nos modelos. Na verdade você pode criar variáveis diretamente dentro do modelo usando a diretiva set.

1. Definir variáveis com #set()

Duas formas de declarar variáveis:
Método 1: definir variáveis antecipadamente no código backend C#/Java e ler no modelo;
Método 2: definir variáveis diretamente dentro do modelo com #set() (ponto principal desta lição)

#set($name = "hello foxdevelop.com")
#set($okay = "common baby")
#set($nameokay = "$name|$okay")Code language: PHP (php)
  • #set(variável = valor) aceita strings, números, arrays, propriedades de objetos e atribuições vindas de outras variáveis
  • Tipagem fraca, não precisa declarar o tipo da variável

2. Duas sintaxes e regras para renderizar variáveis

2.1 Formas básicas

  • $name: se a variável não existir, imprime o texto literal $name
  • $!name: renderização silenciosa; retorna conteúdo vazio quando a variável falta (recomendado para evitar textos estranhos $xxx na página)
  • Sintaxe padrão recomendada: ${name} (chaves delimitam explicitamente o nome da variável)

2.2 Exemplo de problema de limite

#set($name = "hello")
$namehello     × o motor interpreta como variável $namehello e não encontra
${name}hello   √ correto: resolve $name e concatena o texto helloCode language: PHP (php)

3. Comentários de linha única ##

## Este é um comentário, não aparece na saída final
#set($name = "test") ## comentários no fim da linha também são suportadosCode language: PHP (php)
  1. O conteúdo dos comentáriosnão é enviado para a página renderizada;
  2. Não ficam visíveis no código‑fonte do navegador (são descartados durante o processamento do motor de modelos).

4. Tipos de atribuição suportados por #set

## Atribuição de string
#set($name = "hello world")

## Atribuir uma variável a outra
#set($obj= $name)

## Atribuir propriedades de objeto
#set($obj.Friend = "monica")
#set($obj.Blame = $whitehouse.Leak)

## Chamar método e atribuir seu retorno
#set($obj.Plan = $spindoctor.weave($web))

## Atribuição numérica
#set($obj.Number = 123)

## Atribuição de array
#set($obj.Say = ["Not", $my, "fault"])Code language: PHP (php)

5. Regras especiais para variáveis inexistentes

$sadfsdfsdCode language: PHP (php)

Quando o motor de modelo não consegue resolver a variável:

  • Sintaxe normal $sadfsdfsd: imprime literalmente o texto $sadfsdfsd
  • Usando $!sadfsdfsd: retorna string vazia quando a variável não existe

Definir variáveis dentro do modelo

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *