1. Grammaire de base
1. « # » est utilisé pour identifier les instructions du script Velocity, notamment #set, #if, #else, #end, #foreach, #end, #iinclude, #parse, #macro, etc. ;
comme:
#si($info.imgs)
<img src="http://VeVB.COm/ydmx_lei/blog/$info.imgs" border=0>
#autre
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#fin
2. "$" est utilisé pour identifier un objet (ou compris comme une variable telle que) ;
Tels que : $i, $msg, $TagUtil.options(...), etc.
3. « {} » est utilisé pour identifier clairement la variable de vitesse ;
Par exemple, dans la page, il y a $someonename. À ce moment, Velocity utilisera Someonename comme nom de variable. Si notre programme souhaite afficher le caractère du nom immédiatement après la variable Someone, l'étiquette ci-dessus doit être remplacée par ${someone. . }nom.
4. "!" est utilisé pour forcer l'affichage des variables inexistantes comme vides.
Par exemple, lorsque la page contient $msg, si l'objet msg a une valeur, la valeur de msg sera affichée. S'il n'y a pas d'objet msg, le caractère $msg sera affiché sur la page. C'est ce que nous ne voulons pas. Afin d'afficher des variables ou des objets inexistants avec des valeurs de variable nulles, il vous suffit d'ajouter un signe "!"
Tel que : $!msg
2. Meilleures pratiques dans EasyJWeb
Théoriquement, vous pouvez utiliser tous les scripts et fonctions Velocity dans le modèle EasyjWeb, mais nous vous déconseillons d'utiliser trop d'expressions de script complexes dans le modèle d'interface. En dernier recours, n'ajoutez aucune logique complexe au modèle d'interface. et encore moins ajouter des déclarations de variables, des opérateurs logiques, etc. au modèle d'interface.
Dans EasyJWeb, nous fournissons cinq instructions de script de modèle de base, qui peuvent essentiellement répondre aux exigences de tous les modèles d'application. Ces quatre instructions de modèle sont très simples et peuvent être ajoutées directement par le concepteur d'interface. Dans de nombreuses pratiques actuelles d'application EasyJWeb, nous constatons que seules les quatre instructions de script de modèle simples suivantes peuvent être implémentées parmi tous les modèles d'interface :
1. $!obj renvoie directement le résultat de l'objet.
Par exemple : afficher la valeur de l'objet java msg dans la balise html. <p>$!msg</p>
Afficher la valeur de l'objet msg traité par l'objet HtmlUtil dans la balise html <p>$!HtmlUtil.doSomething($!msg)</p>
2. #if($!obj) #else #fin de la déclaration de jugement
Par exemple : Dans diverses applications open source d'EasyJWeb, nous voyons souvent des exemples de messages d'invite contextuels msg.
#si($msg)
<script>
alerte('$!msg');
</script>
#fin
Le script ci-dessus signifie que lorsque l'objet msg existe, le contenu suivant tel que <script> sera affiché.
3. #foreach( $info in $list) $info.someList #end Boucles pour lire les objets dans la liste de collection et les traiter en conséquence.
Par exemple : le script de modèle d'interface html pour afficher les sujets populaires sur la page d'accueil du forum du système de forum open source EasyJF (0.3) :
#foreach( $info dans $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#fin
Le script ci-dessus indique qu'il parcourt les objets de la collection hotList1 et génère le contenu pertinent de l'objet.
4. #macro(macroName)#end est un appel de fonction de script (macro) et n'est pas recommandé pour une utilisation intensive dans les modèles d'interface.
Par exemple : Dans l'exemple d'ajout, de suppression, de modification et d'interrogation généré rapidement à l'aide d'EasyJWeb Tools, vous pouvez cliquer sur la barre de titre de la liste pour afficher l'ordre croissant et décroissant. Il s'agit d'un contenu de modèle que l'on voit souvent dans les applications EasyJWeb. pour afficher l'état du tri.
Définition de fonction (macro), généralement placée en premier
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://VeVB.COm/ico/${orderType}.gif">
#fin
#fin
L'appel spécifique est : <font color="#FFFFFF">title#orderPic("title")</font>
5. Incluez le fichier #inclue("nom du fichier modèle") ou #parse("nom du fichier modèle")
Principalement utilisé pour gérer des pages avec le même contenu, comme le contenu supérieur ou inférieur de chaque site Web.
Pour les méthodes d'utilisation, vous pouvez vous référer aux applications du blog EasyJF Open Source et du forum EasyJF Open Source !
Tels que : #parse("/blog/top.html") ou #include("/blog/top.html")
La différence entre analyser et inclure est que s'il y a une balise de script Velocity dans le fichier inclus, elle sera analysée davantage, tandis que l'inclusion sera affichée telle quelle.
3. À propos de l'utilisation de #set
En dernier recours, ne déclarez pas vous-même les variables du script Velocity dans la vue de page, c'est-à-dire utilisez le moins possible #set. Parfois, nous devons afficher un numéro de série sur la page, mais l'objet programme ne contient pas cet attribut de numéro de série. Vous pouvez le définir vous-même. Par exemple, dans un système cyclique, cela se présente comme suit :
#set ($i=0)
#foreach($info dans $list)
Numéro de série :$i
#set($i=$i+1)
#fin
4. Résumé de la syntaxe du script Velocity
1. Instruction : #set ($var=XXX)
Le côté gauche peut contenir le contenu suivant
Copiez le code comme suit :
Référence variable
Chaîne littérale
Référence de propriété
Référence de la méthode
Nombre littéral #set ($i=1)
ArrayList #set ($arr=["yt1", "t2"])
opérateurs arithmétiques
2. Remarque :
Ligne unique ## XXX
Plusieurs lignes #* xxx
xxxx
xxxxxxxxxxxx*#
Type de référence références
3. Variables
Commence par "$", le premier caractère doit être une lettre. caractère suivi d'un identifiant VTL (a .. z ou A .. Z).
Les variables peuvent contenir les caractères suivants :
alphabétique (a .. z, A .. Z)
numérique (0 .. 9)
trait d'union ("-")
soulignement ("_")
4. Propriétés
$Identifiant.Identifiant
$utilisateur.nom
La valeur du nom dans la table de hachage utilisateur. Similaire : user.get("name").
5. Méthodes
objet user.getName() = $user.getName()
6. Notation de référence formelle
Utilisez {} pour séparer les noms de variables des chaînes
comme
#set ($user="csy"}
${nom d'utilisateur}
retourner le nom csy
$nom d'utilisateur
$!nom d'utilisateur
La différence entre $ et $ !
Lorsque le nom d'utilisateur n'est pas trouvé, $username renvoie la chaîne "$username" et $!username renvoie la chaîne vide ""
7. Guillemets doubles et guillemets
#set ($var="helo")
test"$var" renvoie testhello
test'$var' renvoie test'$var'
Vous pouvez modifier la méthode de traitement par défaut en définissant stringliterals.interpolate=false
8. Déclarations conditionnelles
Copiez le code comme suit :
#if( $foo )
<strong>Vitesse !</strong>
#fin
#si($foo)
#elseif()
#autre
#fin
Exécuté lorsque $foo est nul ou la fausse valeur d'un objet booléen.
9. Opérateurs logiques : == && ||
10. Instruction de boucle #foreach($var in $arrays) //La collection contient les trois types suivants de vecteur, une table de hachage ou un tableau
#fin
#foreach( $produit dans $allProducts )
<li>$produit</li>
#fin
#foreach( $key dans $allProducts.keySet() )
<li>Clé : $key -> Valeur : $allProducts.get($key)</li>
#fin
#foreach( $client dans $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#fin
11. La variable VelocityCount est définie dans le fichier de configuration
Copiez le code comme suit :
# Nom par défaut du compteur de boucle
# référence de variable.
directive.foreach.counter.name = vélocitéCount
# Valeur de départ par défaut de la boucle
# référence de variable de compteur.
directive.foreach.counter.initial.value = 1
12. Inclure des fichiers
#include( "un.gif","deux.txt","trois.htm" )
13. Analyser le script d'importation
#parse("moi.vm" )
14. #stop arrête l'exécution et revient
15. Définir la macro Velocimacros, qui équivaut au support de fonctions incluant les fonctions
#macro(d)
<tr><td></td></tr>
#fin
appel
#d()
16. Macros avec paramètres
Copiez le code comme suit :
#macro (tablerows $color $somelist)
#foreach( $quelque chose dans $uneliste )
<tr><td bgcolor=$color>$quelque chose</td></tr>
#fin
#fin
17. Opérateur de tir
#foreach( $foo dans [1..5] )