1. Gramática básica
1. "#" se utiliza para identificar las declaraciones del script de Velocity, incluidas #set, #if, #else, #end, #foreach, #end, #iinclude, #parse, #macro, etc.;
como:
#si($info.imgs)
<img src="http://VeVB.COm/ydmx_lei/blog/$info.imgs" border=0>
#demás
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#fin
2. "$" se utiliza para identificar un objeto (o se entiende como una variable);
Tales como: $i, $msg, $TagUtil.options(...), etc.
3. "{}" se utiliza para identificar claramente la variable Velocidad;
Por ejemplo, en la página hay $alguiennombre. En este momento, Velocity usará alguiennombre como nombre de variable. Si nuestro programa quiere mostrar el carácter de nombre inmediatamente después de la variable alguien, la etiqueta anterior debe cambiarse a ${alguien. . }nombre.
4. "!" se utiliza para forzar que las variables no existentes se muestren en blanco.
Por ejemplo, cuando la página contiene $msg, si el objeto msg tiene un valor, se mostrará el valor de msg. Si no hay ningún objeto msg, el carácter $msg se mostrará en la página. Esto es lo que no queremos. Para mostrar variables inexistentes u objetos con valores de variable nulos en blanco, solo necesita agregar un signo "!"
Por ejemplo: $!msg
2. Mejores prácticas en EasyJWeb
En teoría, puede utilizar todos los scripts y funciones de Velocity en la plantilla EasyjWeb, pero no recomendamos que utilice demasiadas expresiones de script complejas en la plantilla de interfaz. Como último recurso, no agregue ninguna lógica compleja a la plantilla de interfaz. y mucho menos agregar declaraciones de variables, operadores lógicos, etc. a la plantilla de interfaz.
En EasyJWeb, proporcionamos cinco declaraciones de script de plantilla básicas, que básicamente pueden cumplir con los requisitos de todas las plantillas de aplicaciones. Estas cuatro declaraciones de plantilla son muy simples y el diseñador de la interfaz puede agregarlas directamente. En muchas prácticas actuales de aplicaciones EasyJWeb, vemos que solo se pueden implementar las siguientes cuatro instrucciones de script de plantilla simples entre todas las plantillas de interfaz:
1. $!obj devuelve directamente el resultado del objeto.
Por ejemplo: muestre el valor del mensaje del objeto java en la etiqueta html. <p>$!msg</p>
Muestra el valor del objeto msg procesado por el objeto HtmlUtil en la etiqueta html <p>$!HtmlUtil.doSomething($!msg)</p>
2. #if($!obj) #else #end sentencia de juicio
Por ejemplo: en varias aplicaciones de código abierto de EasyJWeb, a menudo vemos ejemplos de mensajes emergentes.
#si($mensaje)
<guión>
alerta('$!msg');
</script>
#fin
El script anterior significa que cuando el objeto msg existe, se generará el siguiente contenido, como <script>.
3. #foreach( $info in $list) $info.someList #end Bucles para leer los objetos en la lista de colección y procesarlos en consecuencia.
Por ejemplo: el script de plantilla de interfaz html para mostrar temas populares en la página de inicio del foro del sistema de foro de código abierto EasyJF (0.3):
#foreach($info en $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#fin
El script anterior indica que recorre los objetos de la colección hotList1 y genera el contenido relevante del objeto.
4. #macro(macroName)#end es una llamada a una función de script (macro) y no se recomienda para un uso extensivo en plantillas de interfaz.
Por ejemplo: en el ejemplo de agregar, eliminar, modificar y consultar rápidamente generado con EasyJWeb Tools, puede hacer clic en la barra de título de la lista para mostrar el orden ascendente y descendente. Este es un contenido de plantilla que vemos a menudo en las aplicaciones EasyJWeb. para mostrar el estado de clasificación.
Definición de función (macro), generalmente colocada en primer lugar
#macro(pedirImagen $tipo)
#if ($orderField.equals($tipo))
<img src="http://VeVB.COm/ico/${orderType}.gif">
#fin
#fin
La llamada específica es: <font color="#FFFFFF">title#orderPic("title")</font>
5. Incluya el archivo #inclue("nombre de archivo de plantilla") o #parse("nombre de archivo de plantilla")
Se utiliza principalmente para manejar páginas con el mismo contenido, como el contenido superior o inferior de cada sitio web.
Para conocer los métodos de uso, puede consultar las aplicaciones en el Blog de código abierto de EasyJF y el Foro de código abierto de EasyJF.
Como por ejemplo: #parse("/blog/top.html") o #include("/blog/top.html")
La diferencia entre analizar e incluir es que si hay una etiqueta de secuencia de comandos de Velocity en el archivo incluido, se analizará más a fondo, mientras que la inclusión se mostrará tal cual.
3. Sobre el uso de #set
Como último recurso, no declare usted mismo las variables del script de Velocity en la vista de página, es decir, utilice #set lo menos posible. A veces necesitamos mostrar un número de serie en la página, pero el objeto del programa no contiene este atributo de número de serie. Puede definirlo usted mismo. Por ejemplo, en un sistema cíclico, es el siguiente:
#conjunto ($i=0)
#foreach($información en $lista)
Número de serie:$i
#conjunto($i=$i+1)
#fin
4. Resumen de sintaxis del script de Velocity
1. Declaración: #set ($var=XXX)
El lado izquierdo puede contener el siguiente contenido.
Copie el código de código de la siguiente manera:
referencia variable
Literal de cadena
Referencia de propiedad
Referencia del método
Número literal #set ($i=1)
ArrayList #conjunto ($arr=["yt1","t2"])
operadores aritméticos
2. Nota:
Línea única ## XXX
Varias líneas #* xxx
xxxx
xxxxxxxxxxxx*#
Tipo de referencia de referencias
3. Variables
Comienza con "$", el primer carácter debe ser una letra. carácter seguido de un identificador VTL (a .. z o A .. Z).
Las variables pueden contener los siguientes caracteres:
alfabético (a .. z, A .. Z)
numérico (0 .. 9)
guión ("-")
guión bajo ("_")
4.Propiedades
$Identificador.Identificador
$nombre.usuario
El valor del nombre en la tabla hash usuario Similar: user.get("nombre")
5. Métodos
objeto usuario.getName() = $usuario.getName()
6. Notación de referencia formal
Utilice {} para separar los nombres de las variables de las cadenas
como
#set ($usuario="csy"}
${usuario}nombre
devolver nombrecs
$nombre de usuario
$!nombre de usuario
¡La diferencia entre $ y $!
Cuando no se encuentra el nombre de usuario, $nombredeusuario devuelve la cadena "$nombredeusuario" y $!nombredeusuario devuelve la cadena vacía ""
7. Comillas dobles y comillas.
#set ($var="hola")
prueba"$var" devuelve pruebahola
prueba'$var' devuelve prueba'$var'
Puede cambiar el método de procesamiento predeterminado configurando stringliterals.interpolate=false
8. Declaraciones condicionales
Copie el código de código de la siguiente manera:
#si($foo)
<strong>¡Velocidad!</strong>
#fin
#si($foo)
#elseif()
#demás
#fin
Se ejecuta cuando $foo es nulo o el valor falso de un objeto booleano.
9. Operadores lógicos: == && ||
10. Declaración de bucle #foreach($var in $arrays) //La colección contiene los siguientes tres tipos de Vector, Hashtable o Array
#fin
#foreach( $producto en $todosLosProductos )
<li>$producto</li>
#fin
#foreach( $clave en $allProducts.keySet() )
<li>Clave: $clave -> Valor: $allProducts.get($clave)</li>
#fin
#foreach($cliente en $listadeclientes)
<tr><td>$velocityCount</td><td>$cliente.Nombre</td></tr>
#fin
11. La variable speedCount está definida en el archivo de configuración.
Copie el código de código de la siguiente manera:
# Nombre predeterminado del contador de bucle
# referencia variable.
directiva.foreach.counter.name = velocidadCount
# Valor inicial predeterminado del bucle
# referencia de variable de contador.
directiva.foreach.counter.initial.value = 1
12. Incluir archivos
#include( "uno.gif","dos.txt","tres.htm" )
13. Analizar script de importación
#parse("yo.vm")
14. #stop detiene la ejecución y regresa
15. Defina la macro Velocimacros, que es equivalente al soporte de funciones que incluye funciones.
#macro(d)
<tr><td></td></tr>
#fin
llamar
#d()
16. Macros con parámetros
Copie el código de código de la siguiente manera:
#macro(cuadros $color $alguna lista)
#foreach( $algo en $alguna lista )
<tr><td bgcolor=$color>$algo</td></tr>
#fin
#fin
17. Operador de rango
#foreach($foo en [1..5])