O sistema jCom utiliza uma "linguagem" denominada Velocity para definir páginas e templates. Esta linguagem é uma forma poderosa de inclusão de comandos dentro do código HTML. Apesar de oferecer grandes vantagens, o Velocity é de aprendizado fácil. Veremos a seguir seu funcionamento básico.
O Velocity é um projeto de código livre. Seu manual completo (em inglês) pode ser obtido no endereço:
http://jakarta.apache.org/velocity/docs/user-guide.html
Variáveis e Objetos Velocity
Variáveis em Velocity são representadas pelo símbolo $, por exemplo $total, $nome. O comando #set() (veremos mais comandos na próxima seção) pode ser usado para definir o valor de uma variável. Veja o exemplo abaixo:
#set( $valor=123 ) O valor é $valor. <br> #set( $soma=2+4 ) A soma de 2+4 é $soma.
Além de variáveis, diversos objetos do jCom são expostos para uso dentro das páginas e templates. Estes objetos são acessados da mesma forma que as variáveis, mas possuem propriedades e comandos específicos. O objeto $cart, por exemplo, representa a cesta de compras da loja:
A cesta de compras tem $cart.itemCount itens.
Os comandos (também chamados de métodos) disponíveis em cada objeto devem ser chamados com () ou com parâmetros, conforme os exemplos abaixo. Os comandos do Velocity possuem sintaxe diferente, conforme explicado na próxima seção do manual.
Este método limpa a cesta de compras:
$cart.clean()
Este configura o título da página:
$page.setTitle("Página de Exemplo")
Este método converte um número para formato monetário (neste caso R$ 10,90):
$util.formatCurrency(10.90)
O formato $variavel é uma abreviação do Velocity; o formato completo seria ${variavel}. Muitas vezes isso não faz diferença, mas pode ser necessário ou desejável "juntar" variáveis e texto, desta forma:
Não funciona: $aream2
Isso funciona: ${area}m2
Como a variável "$aream" não existe, o Velocity não entenderá que queremos na verdade a variável $area concatenada com a letra "m".
Comandos Velocity
Os comandos do Velocity são apenas cinco, definidos pelo símbolo #. Os comandos mais importantes são #set, #if e #foreach:
#set( $valor=5 ) O valor é $valor ## resulta em: O valor é 5 #if ( $valor==5 ) ## o valor é igual a 5? (note que usamos == para verificações) O valor é 5! #elseif ( $valor!=3 ) ## o valor é diferente de 3? O valor não é 3! #else ## se nenhuma das condições acima for verdadeira O valor deve ser 3! #end #foreach( $prod in $cart.items ) ## repete (loop) para todos os itens da cesta de compras Sua cesta contém o produto $prod.name, que custa $prod.price #end
O Velocity permite também a criação de macros. Estas macros podem ser definidas em qualquer página, ou de forma global no arquivo macros.vm. Para maiores informações, visite o manual completo do Velocity.

