Apache Velocity - Apache Velocity
Desenvolvedor (s) | Apache Software Foundation |
---|---|
Versão estável | 2.3 / 27 de fevereiro de 2021
|
Repositório | Repositório de velocidade |
Escrito em | Java |
Sistema operacional | Plataforma cruzada |
Modelo | Motor de template |
Licença | Licença Apache 2.0 |
Local na rede Internet | velocidade |
O Apache Velocity lançado pela primeira vez em abril de 2001, é um mecanismo de modelo baseado em Java que fornece uma linguagem de modelo para objetos de referência definidos no código Java. Seu objetivo é garantir uma separação limpa entre a camada de apresentação e as camadas de negócios em um aplicativo da Web (o padrão de design model – view – controller ).
Velocity é um projeto de software de código aberto hospedado pela Apache Software Foundation . Ele é lançado sob a licença Apache . Jon Scott Stevens derivou o nome do AltiVec Velocity Engine no chip PowerPC G4 .
Usos
Alguns tipos comuns de aplicativos que usam o Velocity são:
- Aplicativos da Web : os desenvolvedores da Web renderizam estruturas de página HTML . O conteúdo é preenchido com informações dinâmicas. A página é processada com VelocityViewServlet ou qualquer uma das várias estruturas que oferecem suporte ao Velocity.
- Geração de código-fonte : o Velocity pode ser usado para gerar código-fonte Java , SQL ou PostScript , com base em modelos . Vários pacotes de software de desenvolvimento comercial e de código aberto usam o Velocity dessa maneira.
- Emails automáticos : muitos aplicativos geram emails automáticos para inscrição de conta, lembretes de senha ou relatórios enviados automaticamente. Usando o Velocity, o modelo de email pode ser armazenado em um arquivo de texto , em vez de incorporado diretamente no código Java.
- Transformação XML : o Velocity fornece uma tarefa Ant , chamada Anakia, que lê um arquivo XML e o disponibiliza para um modelo do Velocity. Uma aplicação comum é converter a documentação do software armazenada em um formato "xdoc" genérico em um documento HTML estilizado.
- O AWS API Gateway usa o mecanismo Apache Velocity para modelos de mapeamento de corpo - JSON é a saída.
Exemplos de código
O seguinte modelo :
## Velocity Hello World
<html>
<body>
#set( $foo = "Velocity" )
## followed by
Hello $foo World!
</body>
</html>
processado pelo Velocity produz o seguinte HTML:
<html>
<body>
Hello Velocity World!
</body>
</html>
Outro exemplo usando condições:
#if( $foo < 10 )
**Go North**
#elseif( $foo == 10 )
**Go East**
#elseif( $bar == 6 )
**Go South**
#else
**Go West**
#end
Modelo de mapeamento do corpo do AWS API Gateway, para DynamoDB HTTP:
{
"TableName": "happy-marketer",
"KeyConditionExpression": "pk = :pk AND begins_with(sk, :sk)",
#if ($input.params('projectStatus') == 'archived')
"FilterExpression": "projectStatus = :Archived",
#else
"FilterExpression": "projectStatus = :InProgress OR projectStatus = :Completed",
#end
"ExpressionAttributeValues": {
":pk": {
"S": "project"
},
":sk": {
"S": "$context.authorizer.claims.email"
},
#if ($input.params('projectStatus') == 'archived')
":Archived": {
"S": "Archived"
}
#else
":InProgress": {
"S": "In Progress"
},
":Completed": {
"S": "Completed"
}
#end
}
}
Outro exemplo com array opcional ; sem condição irá falhar devido a JSON resultante inválido:
{
"email": "$context.authorizer.claims.email"
#if ($input.params('countries') != "")
, "countries": $input.params('countries')
#end
}
A sintaxe e o conceito geral dos modelos Apache Velocity são semelhantes à sintaxe do mecanismo de modelo WebMacro mais antigo , que agora também é um projeto de código aberto.
Veja também
Referências
Bibliografia
- 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 , arquivado do original em 5 de julho de 2009 , recuperado em 4 de setembro de 2009
- Cole, Jim; D. Gradecki, Joseph (16 de julho de 2003), Mastering Apache Velocity (1ª ed.), Wiley , p. 372, ISBN 978-0-471-45794-7 , arquivado do original em 7 de outubro de 2012 , recuperado em 4 de setembro de 2009