Apache Velocity, lanzado por primera vez en abril de 2001, es un motor de plantillas basado en Java que proporciona un lenguaje de plantillas para hacer referencia a objetos definidos en código Java. Su objetivo es garantizar una separación limpia entre el nivel de presentación y los niveles comerciales en una aplicación web (el patrón de diseño modelo-vista-controlador ).
![]() | |
Desarrollador (es) | Fundación de software Apache |
---|---|
Lanzamiento estable | 2.3 / 27 de febrero de 2021 [1] |
Repositorio | Repositorio de velocidad |
Escrito en | Java |
Sistema operativo | Multiplataforma |
Tipo | Motor de plantillas |
Licencia | Licencia Apache 2.0 |
Sitio web | velocidad |
Velocity es un proyecto de software de código abierto alojado por Apache Software Foundation . Se publica bajo la licencia Apache . Jon Scott Stevens derivó el nombre del motor de velocidad AltiVec en el chip PowerPC G4 .
Usos
Algunos tipos comunes de aplicaciones que usan Velocity son:
- Aplicaciones web : los desarrolladores web renderizan estructuras de páginas HTML . El contenido está repleto de información dinámica. La página se procesa con VelocityViewServlet o cualquiera de los marcos que admiten Velocity.Plantilla de asignación del cuerpo de AWS API Gateway.
- Generación de código fuente : Velocity se puede utilizar para generar código fuente Java , SQL o PostScript , basado en plantillas . Varios paquetes de software de desarrollo comercial y de código abierto utilizan Velocity de esta manera. [2]
- Correos electrónicos automáticos : muchas aplicaciones generan correos electrónicos automáticos para el registro de cuentas, recordatorios de contraseñas o informes enviados automáticamente. Con Velocity, la plantilla de correo electrónico se puede almacenar en un archivo de texto , en lugar de incrustarse directamente en el código Java.
- Transformación XML : Velocity proporciona una tarea Ant , llamada Anakia, que lee un archivo XML y lo pone a disposición de una plantilla de Velocity. Una aplicación común es convertir la documentación de software almacenada en un formato "xdoc" genérico en un documento HTML con estilo.
- AWS API Gateway utiliza el motor Apache Velocity para las plantillas de mapeo corporal: se genera JSON .
Ejemplos de código
La siguiente plantilla :
## Velocity Hello World < html > < body > # set ( $ foo = "Velocity" ) ## seguido de Hello $ foo World! cuerpo > html >
procesado por Velocity produce el siguiente HTML:
< html > < cuerpo > ¡Hola Mundo Velocity! cuerpo > html >
Otro ejemplo usando condiciones:
# if ( $ foo < 10 ) ** Ir al norte ** # elseif ( $ foo == 10 ) ** Ir al este ** # elseif ( $ bar == 6 ) ** Ir al sur ** # más ** Ir al oeste ** # final
Plantilla de asignación del cuerpo de AWS API Gateway, para DynamoDB HTTP:
{ "TableName": "feliz-vendedor", "KeyConditionExpression": "pk =: pk Y begins_with (SK, SK)", # si ($ de entrada . Params ( 'projectStatus' ) == 'archivado' ) "FilterExpression": "projectStatus =: Archived", # else "FilterExpression": "projectStatus =: InProgress OR projectStatus =: Completed", # end "ExpressionAttributeValues": { ": pk": { "S": "proyecto" }, ": sk": { "S": " $ contexto . Autorizador . Reclamaciones . Email " }, # si ($ de entrada . Params ( 'projectStatus' ) == 'archivado' ) ": Archivado": { "S": "Archivado" } # más ": InProgress": { "S": "En curso" }, ": Completado": { "S": "Completado" } # final } }
Otro ejemplo con matriz opcional ; sin condición fallará debido a un JSON resultante no válido:
{ "correo electrónico": " $ contexto . autorizador . reclamaciones . correo electrónico " # if ($ input . params ( 'países' ) ! = "" ) , "países": $ input . params ( 'países' ) # fin}
La sintaxis y el concepto general de las plantillas de Apache Velocity es similar a la sintaxis del motor de plantillas WebMacro anterior , que ahora también es un proyecto de código abierto. [ cita requerida ]
Ver también
- Torque Apache
- FreeMarker
- Páginas de JavaServer
- Thymeleaf
Referencias
- ^ "Velocidad de Apache - Noticias del proyecto" . velocity.apache.org . Fundación de software Apache . Consultado el 2 de abril de 2021 .
- ^ "PoweredByVelocity" . Velocity Wiki . Wiki.apache.org. 2009-12-30. Archivado desde el original el 23 de marzo de 2010 . Consultado el 29 de marzo de 2010 .
Bibliografía
- Harrop, Rob; Darwin, Ian (30 de agosto de 2004), Pro Jakarta Velocity: From Professional to Expert (1ª ed.), Apress , p. 370, ISBN 978-1-59059-410-0, archivado desde el original el 5 de julio de 2009 , consultado el 4 de septiembre de 2009
- Cole, Jim; D. Gradecki, Joseph (16 de julio de 2003), Mastering Apache Velocity (1ª ed.), Wiley , p. 372, ISBN 978-0-471-45794-7, archivado desde el original el 7 de octubre de 2012 , consultado el 4 de septiembre de 2009
enlaces externos
- Velocidad en Apache
- Guía del usuario