[quote=“Elvis.The.Pelvis”]#parse(“macros.txt”)
…
Quando usei #include, o conteudo foi incluido e gerado como output, mas ao usar #parse, não consegui usar as macros de dentro do template, ele não reconheceu as macros. To fazendo algo errado?
[/quote]
Deveria funcionar. Se voce vai usar como global essas macros, tem uma propriedade pra isso no velocity.properties. algo como global.vm.
Bem. Entao voce vai ter de mapear por servlet mapping.
[quote=“Elvis.The.Pelvis”]
Mais uma coisa, posso definir vários paths para
file.resource.loader.path?[/quote]
Sim, separa por virgula porque o velocity usa o extendProperties do jakarta-commons-colletcions. Voce pode setar essas variaveis em runtime tambem, eu acho mais interessante.
Gostaria de receber uma pequena dica. Acabo de instalar o velocity e tudo funcionou muito bem.
Gostaria de saber com posso configurar meu ambiente para não precissar usar o classpath, eu setei os .jars no classpath e isso me forçou a colocar o caminho de onde estão minhas classes também para que o classloader(java) as encontra-se. Gostaria de não precissar usar o classpath.
A questão é a sequinte, quando eu instalo o velocity tenho que referenciar os .jars que contém as classes necessárias ao velocity. No artigo que tem no GUJ dis para eu setar no classpath o velocity-dep-x.x.x.jar e o velocity-x.x.x.jar no classpath onde x.x.x é a versão do velocity.
Ao faze-lo o meu ambiente passa a não enxergar orde está as minhas classes. por exemplo: c: esteVelocity este.java
c: esteVelocity este.vm
c: esteVelocity este.class
Ele compila legal mas não executa a classe, a menos que eu sete no mesmo classpath o diretório c: esteVelocity.
Ou seja tudo funcionou muito bem. Mas quero chegar a uma solução, caso tenha como, onde eu não tenha que setas no classpath os arquivos .jars para que assim eu não tenha que setas os diretórios onde eu tenho classes para executar.
E que eu nunca uso o classpath. Gostaria de saber como não usá-lo agora também. E aproveitando, gostaria de saber se não usar o classpath é uma boa ou não e porque.
Quando as bibliotecas estao em .jar’s eh necessario referenciar cada uma mesmo, nao tem jeito. O problema que voce esta tendo eh porque faltou o diretorio corrente, representado pelo caracter de ponto, no classpath… por isso que ele nao achava a classe no diretorio que voce estava.
set CLASSPATH=.;XXXXX
note o “.;” ( ponto-e-virgula )… isso diz ao java para procurar as classes tambem no diretorio que voce se encontra.
Da mesma forma como vc gera qualquer outro tiop de arquivo com Velocity. A unica diferenca eh que o teu template devera usar as palavras-chave validas para um fonte jav
Estou tentando entender um pouco melhor o velocity, mas acho que não comecei muito bem.
Peguei o tutorial mas quando fui tentar rodar a classe de exemplo lá existente não consegui de forma alguma… Ele sempre da erro quando tenta localizar o arquivo de template.
“org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource ‘template1.vm’”
Coloquei o caminho absoluto do arquivo no código e não funcionou, coloquei o arquivo de template no diretório do projeto e também não funcionou…
Alguém pode me ajudar??? O classpath está perfeito, pois existem algumas referências a classes do velocity antes de tentar localizar o template e essas estão funcionando.
Obs.: Uso o Jdev como IDE e container. Também costumo usar o Websphere (mas esse uso raramente)… E nos dois o erro foi o mesmo
Tenho um dúvida quanto ao Velocity. Eu sei que ele é usado para escrever documentos texto utilizando template + variáveis. No entanto, eu gostaria de uma ferramenta Java que fizesse o contrário disto: A partir de um template c/ variáveis + documento, obtesse um objeto Java de uma classe qualquer determinada. Em outras palavras tenho:
um template XML
um documento XML que “encaixa-se” neste template (ou seja, pode ter sido gerado por este template)
um objeto Java de uma classe qualquer que contenha atributos com os mesmos nomes das variáveis do template.
Gostaria de saber se o Velocity consegue ler os dados de um XML (por exemplo), baseando-se nas variáveis do template, para alimentar os atributos do objeto Java?
<?xml version='1.0'?>
<Documento versao='5.5'>
<Atributos>
<Atributo1 valor='valor do atributo1' />
<Atributo2 valor='valor do atributo2' />
</Atributos>
<Name>Nome qualquer...</Name>
</Documento>
Classes Java:
public class ClasseQualquer {
private Atributos atributos;
private String name;
// Métodos set e get dos atributos private
}
public class Atributos {
private String atributo1;
private String atributo2;
// Métodos set e get dos atributos private
}
Sendo assim, seria executado um processo ao qual um objeto da classe ClasseQualquer teria o atributo ‘name’ alimentado com ‘Nome qualquer…’, ‘atributos’ seria alimentado com um objeto da classe Atributos. Este por sua vez, teria os atributos ‘atributo1’ e ‘atributo2’ alimentados respectivamente com os valores: ‘valor do atributo1’ e ‘valor do atributo2’.
[quote=jgbt]Com Velocity eu não sei se da p/ fazer, mas qualquer parser xml por ae, tipo o XStream faz o que vc quer.
[]´s
[/quote]
Obrigado pela resposta.
Nunca usei o XStream, mas pelo que pesquisei essa tecnologia não permite eu costumizar o meu XML. Eu quero que faça algo semelhante ao que faz o XStream, porém o formato do XML tem que ser costumizavel (por isto o exemplo que eu dei tem um TEMPLATE) pois as variáveis no XML podem estar contidas tanto dentro de TAGs quando dentro de atributos de TAGs.
[quote=Administrador]Assunto: Através deste longo tutorial, apresentaremos as vantagens e facilidades de utilizar uma ferramenta de templates. Desta maneira, você irá separar a lógica do seu programa da apresentação dos resultados.
Por favor, coloque as suas dúvidas e seus comentários sobre este tutorial aqui.
Sinta-se livre para fazer qualquer tipo de pergunta, desta maneira você estará nos ajudando e aos outros usuários![/quote]
Bom dia.
Cara, eu sou um novo usuário desse fórum e tenho uma grande dúvida sobre VELOCITY.
Eu estou implementando uma notificação, e tenho que enviá-la por e-mail. Porém quero enviar esse e-mail formatado com logo, cor de fundo etc. É possível usar código HTML dentro desse arquivo - VELOCITY???