Dúvida de utilização do Velocity em conjunto com Hibernate e Struts

15 respostas
welldasilva

Pessoal,

Estou criado um projeto de cadastro de clientes através de uma aplicação WEB. A persistência é com Hibernate e o controller o Struts. Como view estou utilizando Velocity, mas não tenho experiência com esse framework e estou com dificuldade.
Percebi que minha view .vm não está com o direcionamento correto através do struts-config.
Não estou sabendo fazer um hyperlink que funcione com velocity.
Tentei $link.action ; $link.forward ; só estou conseguindo com html
Não consigo chamar minha servlet:

... cofigurei essa servlet no struts-config e não funciona. O Tomcat informa que o recurso não está disponível. Alguém consegue me ajudar?

Obrigado,

Wellington

15 Respostas

T

Não entendi direito o que vc quer, com a linha abaixo, mas se for
o que eu imagino que seja, tente com ${link} que deverá funcionar.

<form action="$link.setAction('/cadastrarCliente')" method="post">

NOTA: Se estiver usando o mapeamentro padrão do servlet
do Struts, acho que esta faltando um .do nesse seu /cadastrarCliente

fabiozoroastro

Vc está usando struts1.x ou struts2.x?
Bom, na MINHA opinião, o Tiles é mais poderoso que o velocity, mas vale lembrar que conheço o velocity mto pouco.

welldasilva

tgpadua,

Com o código abaixo:
Code:

eu quero passar o conteúdo de um formulário que viria logo abaixo para a

T

welldasilva:
tgpadua,

Com o código abaixo:
Code:

eu quero passar o conteúdo de um formulário que viria logo abaixo para a

para a…?

Escreva em HTML o que vc deseja que o Velocity gere que da fica mais
fácil pra entender e te ajudar :wink:

welldasilva

tgpadua,
Eu quero o seguinte:

  • Acesso o index.vm que possui link para a view cadastro.vm daí fiz o seguinte:

Cadastrar
mas não funcionou.
Só funciona com:
Cadastrar ( ou seja html puro)

Esse é o primeiro problema.

O outro é que estando no formulário, que é meu cadastro.vm, preciso direcioná-lo para o struts-config para que o mesmo chame minha actionservlet. Daí fiz o seguinte:

Pois configurei meu formulário para chamar o struts-config através de cadastrarCliente, mas tb não funciona. Parece que não estou conseguindo comunicação com o struts-config, pois o Tomcat diz que o recurso não está disponível.

Respondendo a pergunta do fabiozoroastro :

Não baixei nenhum jar específico do projeto Struts, baixei diretamento os jars do projeto VelocityStruts (velocity-tools 1.3)

OBS.: Não tenho muita experiência em Struts e Velocity, mas no momento estou quebrando a cabeça para trabalhar com Velocity

welldasilva

tgpadua,

Do jeito que eu mostrei o código não funciona mesmo colocando o .do.

Certamente estou fazendo da maneira errada. Mas não conheço a correta

T

Primeiro, sobre o index.vm essa váriavel $link é um objeto
que possui um atributo action com método acessor ? (getAction())

Segundo, vc ta utilizando frames/iframe ? se não tiver não
tem pq utilizar aquele target na tag

Terceiro, vc nunca chama o struts-config, quem le o conteúdo dele
é o Controller para saber pra onde vai mandar sua requisição. :wink:
Essa sua expressão: $link.setAction(’/cadastrarCliente’)
Esta bem esquisita… Se fosse para gerar em HTML vc queria que
fica-se como o seu código ?

welldasilva

tgpadua,

Em html é o que vc disse:

Mas em velocity é como?

Outra pergunta:

Como eu faço um hyperlink em velocity? Em html eu sei que é o seguinte:

Cadastrar

Valeu pela atenção,

T

Amigo,

Pelo o que percebi sua dúvida é um tanto quanto conceitual.
Sugiro que vc leia o texto do Rafael Steil que tem na seção de artigos.
O Velocity gera TEXTO ele não possui taglibs nem nada do gênero.
em Velocity escrever um link é a mesma coisa que seria em HTML,
o que muda é que vc pode obter esse valor de um váriavel, ai nesse
caso vc invoca ela chamando por $nomeDaVariavel.

welldasilva

Pessoal,

Consegui resolver com as dicas que recebi. Obrigado!

T

welldasilva,

Uma boa prática aqui no forum é publicar a solução!
Assim outras pessoas com as mesmas dificuldades que lerem
o topic não precisaram repetir as perguntas.

abraços

ceara

Realmente concordo 100% com o tgpadua

Por exemplo, eu que estou mais ou menos com a mesma dúvida não obtive aqui a solução!!!

Estou começando a ler sobre o Velocity, já pensando em usar a versão nova 1.5.

Abraços
Rafael Ferreira

T

ceara:
Realmente concordo 100% com o tgpadua

Por exemplo, eu que estou mais ou menos com a mesma dúvida não obtive aqui a solução!!!

Estou começando a ler sobre o Velocity, já pensando em usar a versão nova 1.5.

Abraços
Rafael Ferreira

Rafael,

Se tiver alguma dúvida aconselho a abrir outro topic
pois do tempo que esse foi aberto, não creio que terá
resposta. Ou então envie sua dúvida aqui mesmo :slight_smile:

Boa Sorte!

ceara

Bom…

Vou tentar por aqui o que estou em mente:

  • Estou ‘reformando’ um sistema antigamente construído com struts, mas nível básico de programação mesmo.
  • O resumo do sistema são relatórios financeiros. Então no sistema tem diversas telas de pedidos de relatórios, onde o usuário seleciona datas, empresas, filiais, etc.
  • Eu não quero fazer cada tela dessa, um JSP para cada relatório, um validate para cada relatório.

O que eu quero:

  • Fazer um ‘core’ usando o Velocity que vai me fazer esse meio de campo.

  • Eu configuro os campos que cada relatório vai ter, num XML, com todos os relatórios e seus campos obrigatórios etc.

  • Chamo o velocity ele vai renderizar a pagina pra mim baseado no XML e no relatório escolhido.

  • Via menú pensei em passar na URL mesmo o tipo do relatório, já especificado no XML.

Alguem tem alguma luz?

T

Bom,

Pra vc fazer o que tem em mente precisa conhecer o mínimo
possivel do Velocity. Não é tão complicado quanto parece, se
você ler os 2 texto do Rafael Steil que estão no artigos te garanto
que deverá responder quase todas as suas dúvidas! O que não
responder, você perguntar ai que a galera te ajuda.

Good Luck! :wink:

Criado 3 de abril de 2007
Ultima resposta 16 de abr. de 2007
Respostas 15
Participantes 4