[Ajuda] Criar template no Velocity

1 resposta
InsaneChess

Prezados, Boa tarde.
Estou seguindo o aprendizado com velocity nesse artigo:
http://www.guj.com.br/articles/18#

Porém na linha "Template t = ve.getTemplate("template1.vm");"

Ele não está encontrando meu template e lançando o erro:
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'template1.vm'

Enfim, é um projeto Java WEB. (Sei que o resultado sairá no console), tentei colocar o template no diretório Raiz e no WebRoot.
Alguem sabe o que pode estar acontecendo?

Segue meu código (Obviamente, retirei o método main):

package br.com.murah.audixpress.auditoria.beans.navegacao.testevelocity;

import java.io.StringWriter;
import java.util.ArrayList;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

public class VelocityListProcess
{
	public VelocityListProcess()
	{
		try
		{
			// inicializando o velocity
			VelocityEngine ve = new VelocityEngine();
			ve.init();

			// criando o contexto que liga o java ao template
			VelocityContext context = new VelocityContext();

			// escolhendo o template
			Template t = ve.getTemplate("template1.vm");

			// variavel que sera acessada no template:
			ArrayList list = new ArrayList();
			list.add("Item 1");
			list.add("Item 2");
			list.add("Item 3");
			list.add("Item 4");
			list.add("Item 5");

			// aqui! damos a variavel list para
			// o contexto!
			context.put("lista", list);
			StringWriter writer = new StringWriter();

			// mistura o contexto com o template
			t.merge(context, writer);

			System.out.println(writer.toString());
		}
		catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	String nome;
	int idade;

	public String getNome()
	{
		return nome;
	}

	public void setNome(String nome)
	{
		this.nome = nome;
	}

	public int getIdade()
	{
		return idade;
	}

	public void setIdade(int idade)
	{
		this.idade = idade;
	}

	public String irParaTelaPesquisa()
	{
		return "telaVelocity";
	}

	public String irParaTelaEdicao()
	{
		return "edicaoVelocity";
	}
}

Obrigado a todos,
Abraços!!!

1 Resposta

F

faz o seguinte

VelocityEngine ve = new VelocityEngine();
		ve.setProperty("file.resource.loader.path", "C:/templates/");
		ve.init();

onde c>/templates eh onde esta o seu template

creio que funcione
atE+

Criado 7 de fevereiro de 2011
Ultima resposta 7 de fev. de 2011
Respostas 1
Participantes 2