Syntaxe de base des modèles

I. Passer des objets entité au modèle

1. Classe d’entité PageInfo

Jusqu’ici nous transmettions uniquement des chaînes de caractères simples. Cette méthode est peu performante et complique la maintenance. Encapsuler les données dans des objets entité rend le code beaucoup plus lisible.

public class PageInfo
{
    private bool IsShowImage;
    public bool IsShowImage1
    {
        get { return IsShowImage; }
        set { IsShowImage = value; }
    }
}Langage du code : C# (cs)
  • Champ privé IsShowImage, exposé publiquement via la propriété IsShowImage1
  • Accès dans le modèle : $info.IsShowImage1

2. Alimenter le contexte

//Conteneur de contexte du modèle
IContext context = new VelocityContext();

PageInfo pi = new PageInfo();
pi.IsShowImage1 = true;

//Enregistrer l’objet pi sous la clé info dans le contexte
context.Put("info",pi);

//Exemple de variable chaîne
context.Put("infotitle","Bonjour");Langage du code : C# (cs)

context.Put("nomCle",donnée):transmet les données au modèle, qui les récupère avec $nomCle.

II. Syntaxe principale du modèle Velocity

1. Marqueur de directive #

Tout ce qui commence par # est une directive. Principales directives :
#if, #else, #end, #foreach, #set, #include

Exemple de rendu conditionnel :

Préparez deux images, placez‑les dans le dossier Contents/Images à la racine du site. Modifiez IsShowImage1 pour afficher l’une ou l’autre image.

#if($info.IsShowImage1)
    <img src="./Contents/Images/a.gif" />
#else
    <img src="./Contents/Images/b.gif" />
#endLangage du code : PHP (php)

Fonctionnement : affiche a.gif si IsShowImage1=true, sinon affiche b.gif

2. Marqueur de variable $

  • $nomVariable:affiche la valeur de la variable
  • ${nomVariable}délimite la variable (point essentiel !)

Cas d’usage : du texte suit immédiatement la variable, le moteur ne sait pas où finit le nom de variable.

Mauvaise écriture : $infotitlefoxdevelop.com
Le moteur interprète tout cela comme une variable infotitlefoxdevelop qui n’existe pas.

Bonne écriture : ${infotitle}foxdevelop.com
Le moteur lit la variable infotitle puis concatène la chaîne foxdevelop.comLangage du code : PHP (php)

3. Modificateur de sortie silencieuse !$!nomVariable

Comportement par défaut : si la variable n’existe pas, la page affiche le texte brut $nomVariable
$!nomVariable:affiche du vide quand la variable est absente ou nulle, sans afficher le signe dollar

Exemple comparatif :

SyntaxeVariable existe(valeur= »Bonjour »)Variable absente
$infotitleBonjour$infotitle
$!infotitleBonjour(vide, rien ne s’affiche)
${infotitle}Bonjour${infotitle}
$!{infotitle}Bonjourvide

Extrait de test complet :

${infotitle}foxdevelop.com <br/>
$!infotitlefoxdevelop.com <br/>
$infotitle <br/>
$!infotitle <br/>Langage du code : HTML, XML (xml)

Conclusion

  1. Quand vous ajoutez du texte après une variable, encadrez‑la systématiquement par ${variable}
  2. Privilégiez $!{nomVariable} en production, pour éviter que des $xxx bruts cassent la mise en page sur des valeurs nulles
  3. Pour tester une propriété booléenne avec #if, écrivez directement #if($info.IsShowImage1), pas besoin d’ajouter ==true

Syntaxe de base des modèles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *