Ola pessoal !!
Eu gostaria de saber o q é , e para que serve o Velocity ?
Ate + !! Valeu !!!
Ola pessoal !!
Eu gostaria de saber o q é , e para que serve o Velocity ?
Ate + !! Valeu !!!
Velocity eh uma linguagem de templates. Dê uma olhada no site oficial, e dê uma lida no User’s Guide, e acho que vc vai entender melhor do que se eu tentasse uma explicação mais completa aqui
soh mais uma coisa sobre o Velocity…
ele roda no WebSphere server??
dei uma olhada no user guide e developer guide do site dele, mas nao vi nada a respeito…
valew
Roda sim, claro
ufa!!!..ainda bem…
to a fim de usar ele num projeto…agora eh soh aprender ele p/ valer…
valew cv
Falando serio, nem tem muito o que aprender sobre o Velocity…
$variavel
$!variavel
${variavel}
$variavel.metodo()
$variavel.propriedade
#set($variavel = "valor")
#for($var in $collection) ... #end
#if($var == "2") ... #end
Com isso, da pra se virar em 90% dos casos
é tem tutoriais aqui no GUJ tb
Certo pessoal , li no site do apache, vi algumas comparações entre tags JSP e o Velocity, mas a grosso modo mesmo , ele serve pra q ?
Ate + e Valeu !!!
Serve para fazer coisas que sao possiveis com templates… a tua imaginacao determinara o que eh possivel ( a grosso modo, claro… hehe )
Por exemplo, ao inves de usar JSP para montar o layout da pagina, voce pode usar algum sistema de templates - que eh o caso do Velocity - para fazer isso, com a vantagem de ser muito mais simples de usar.
Voce pode usar em geradores de codigo, em geracao de documentos textos… templates… sabe aqueles templates do Word que o pessoal faz, onde vc tem um documento base e soh muda algumas partes, como nome, telefone, endereco etc… ? ( mala-direta eh um bom exemplo )…
Se voce quiesse isso pra web, poderia fazer um documento texto no mesmo formato e usar Velocity para a parte dinamica… o mesmo vale para sites …
O que voce faz com Velocity da para fazer com JSP, e vice-versa, em um contexto um pouco mais limitado - mas bem mais simples.
Rafael
Um exemplo prático:
O roller weblog usa o Velocity como template engine das páginas. Eu quis associar uma imagem para identificar a qual categoria o meu post pertence no meu blog. Assim, eu fiz o seguinte:
$entry.category.name retorna o nome da categoria à qual pertence o meu post (entry). Se o nome da categoria for “Java”, irá aparecer ali a imagem Java.gif. Legal né?
O Velocity facilita muito a vida do designer (e do programador), que não precisa mexer em código nenhum. A equipe de coders pode passar pra ele todas as macros e variáveis que foram definidas. Por exemplo, “onde vc quiser chamar o nome da pessoa logada use $usuario.nome”, aí o cara só tem que fazer algo como Olá, <b>$usuario.nome</b>. Daí vem a idéia de ‘templates’. Você pode montar diferentes templates para mostrar uma mesma informação.
Pessoal valeu mesmo, agora eu entendi , ja estou até usando !!!
Valeu , pela força !!!
no caso de usar o vtl no jsp/html tem algum exemplo ?
Como eu inicializo ?
Mas… pra que vc faria isso, mindu?
Voce inicia da mesma forma como inicia em uma aplicacao normal ( como o do tutorial aqui do guj )…
Se quiser um exemplo com servlets, no site do velocity tem alguns…
Rafael
hehehe, comecei a ver agora sobre velocity e estou perdido.
instalei o tomcat.
instalei o velocity.
vi esse exemplo no site:
<html>
<body>
#set( $foo = "Velocity" )
Hello $foo World!
</body>
<html>
mas se eu simplesmente criar um html e rodar esse exemplo não vai funcionar.
é preciso colocar algum jar no tomcat ou no classpath ?
preciso importar alguma coisa ?
opa… eh mesmo :mrgreen:
Mindu, quando voce usa Velocity, ou algum outro template engine, voce acaba nao usando JSP… ate tem uma forma de usar VTL com JSP, mas nao parece ter uma razao real para terem criado tal plugin…
Rafael
A grosso modo, voce pode fazer assim:
public class MeuServlet extends HttpServlet {
...
public void init(ServletConfig config) throws ServletException {
String docRoot = config.getServletContext().getRealPath("");
Properties p = new Properties();
p.setProperty("file.resource.loader.path", docRoot);
Velocity.init(p);
}
public void service(HttpServeltRequest request,
HttpServletResponse response)
throws IOException, ServletException {
VelocityContext context = new VelocityContext();
context.put("nome", request.getParameter("nome"));
Template template = Velocity.getTemplate("teste.html");
response.setContentType("text/html");
template.merge(context, response.getWriter());
}
}
Esse eh soh um tosco exemplo de como fazer em um Servlet… Se voce estender VelocityServlet, pode pular varios passos… no site do Velocity mostra como usar…
Rafael
public class Gateway extends HttpServlet {
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
try{
Velocity.init();
VelocityContext ctx = new VelocityContext();
ctx.put("nome","mindu");
Template template = Velocity.getTemplate("teste.vm");
StringWriter w = new StringWriter();
template.merge(ctx,w);
}
catch(Exception e){
e.printStackTrace();
}
}
}
o método getTemplate(“teste.vm”); tem que ter o caminho exato para o arquivo .vm ?
Estou tentando rodar esse exemplo, mas não está funcionando.
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'teste.vm'
at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:501)
at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:384)
Voce configuou o path do velocity como eu tinha passado no outro exemplo?
public void init(ServletConfig config) throws ServletException {
String docRoot = config.getServletContext().getRealPath("");
Properties p = new Properties();
p.setProperty("file.resource.loader.path", docRoot);
Velocity.init(p);
}
esse “file.resouce.loader.path” voce usa para especificar o diretorio raiz para o Velocity sair procurando pelos templates… No exemplo acima, o diretorio base sera a raiz da tua aplicacao web, e com base nsso, voce passa o resto do caminho do arquivo, se precisar.
Rafael
obrigado !