Custom Tags x Velocity

Não tenho experiência com o Velocity, mas recentemente me envolvi com custom tags do JSP em um novo projeto.

Apesar da API pouco amigável (doAfterBody, doStartTag, etc e tal), nada te impede de simplificar bastante a coisa criando classes abstratas como ConditionalTag, LoopTag, etc e tal. Feito isso, fica bastante fácil criar as suas próprias TAGs e organizá-las em vários TLDs.

O resultado é que toda a lógica das páginas JSP fica bem clara através de TAGs, e o designer pode entendê-las e reutilizá-las em todos os lugares do site.

Então fica a pergunta. O que é melhor Custom Tags do JSP ou Velocity ???

Hmmmm custom tags seria uma boa. Para lógica dependendo da empresa custom tags seria melhor que velocity, vamos ver alguns pontos:

Tempo:
Voê teria que criar a livraria e isso usaria tempo de desenvolvimento e teste, sem contar que podem haver erros / bugs que seriam descobertos no meio do desenvolvimento e isso gastaria mais tempo ainda.
Haveria uma prévia análise para se definir quais seriam todas as tags que vocês teriam que criar para suprir todas as necessidades do projeto?
A livraria seria para a empresa ou para o projeto?

Rotatividade:
Sa equipe não tem rotatividade de profissionais fica tranquilo usar pois raramente você vai ter que perder tempo dando treinamento pra outra pessoa que chegou agora e tem que aprender as suas tags. Com o tempo a equipe fica madura e acostumada e então pode-se haver um ganho real de tempo em outros projetos.

Falar que um é melhor que o outro não da, depende muito do contexto, por isso leve em consideração esses pontos e analise o que é melhor para sua empresa.

[quote=“Flin”]Haveria uma prévia análise para se definir quais seriam todas as tags que vocês teriam que criar para suprir todas as necessidades do projeto?
[/quote]

Algumas tags básicas poderiam ser desenvolvidas com antecedência, mas a grande maioria seria desenvolvida ao longo do projeto. São tags condicionais, de lógica de página, etc e tal. Não dá para desenvolver antes.

Para o projeto. É claro que num segundo projeto daria para reaproveitar alguma coisa.

Pô, tag é uma coisa bem simples. Qualquer um entende uma tag. O template do Velocity tb, mas tenho minhas dúvidas sobre a simplicidade de manter o Velocity por trás dos panos, pois nunca trabalhei com velocity na prática. Já as tags, depois que vc faz o seu framework (ConditionalTag, LoopTag, etc e tal) para fugir da bagunça do framework da Sun, fica bem fácil fazer e manter suas tags.

Qualquer um entende de tag virgula. Um designer, “HTMLer” não tem a facilidade que um programador tem. O cara sabe la as tags do html, coisa que as vezes ele estudou muito pra saber direito. Pra nós pode ser algo simples, mas nem todo mundo é assim.

Vc acha que o HTMLer vai preferir o Velocity Template do que as Taguizinhas ??? Posso estar enganado, mas se eu tivesse que chutar, chutaria nas taguizinhas…

Velocity ja tem uma documentação e ja esta tudo feito. Ali pra cada situação nova uma tag vai ser feita e passada pro cara.

Algo que virou quase padrão na Tesla foi o Velocity mesmo.

Pesos e medidas, vê o que é melhor pra sua empresa e qual a preferência da sua equipe. Não tenho como falar qual é melhor pra você assim na lata. Dei minha opinião, se você acha as tags melhores, acha que seus htmlers vão preferir, e acha produtivo então vai fundo ueh :slight_smile:

Valeu Flin,

É que eu não conheço Velocity. Talvez seja até melhor que Custom Tags, por isso que eu quiz provocar essa discussão.

Obrigado pelas dicas !!!

opa!

Cara, não sei se você tá trabalhando o webwork… mas lá vai:

O webwork tem uma excelente integração com o velocity, se você estiver trabalhando com ele você deve ter visto ou pelo menos vai ver…

Ele tem uma integração tão boa, que é possível fazer custom tag’s pro velocity… sim, custom tag’s, não são macros do velocity…

não chegei ir mais a fundo nas custom tag’s que o webwork tem prá jsp, mas pelo que vi elas são as mesmas que ele disponibiliza para o velocity… todas as custom tag’s que ele tem prá jsp, tem pro velocity e não interessa se tu tá com a view em jsp ou velocity, o que a tag gera de html é com o velocity!

ou seja:
dependendo dá forma que você fizer a tag, você pode usar a mesma tanto prá velocity como prá jsp…

se você me pedir se funciona legal, eu te digo que não só funciona como nós fizemos as nossoas aqui na empresa…
também vou te adiantanto que não vai ser fácil você achar documentação sobre isso… se quiser fazer alguma coisa baixe os fontes do webwork que é praticamente a única coisa que você vai ter prá estudar…

mais uma:
prá usar as custom tag’s com o velocity não precisa fazer nem o .tld… é necessário apenas acrescentar uma linha de configuração no webwork.properties que diga em quais pacotes estão as tag’s… tu pode achar meio ingraçado, mas ele pega as tag’s pelo nome da classe…

é isso…
té+

rbaum,

Mas ai vc está falando de uma mudança bem maior, passar de JSP para Webwork.

Não conheço o Webwork a fundo, mas pelo pouco que eu li no tutorial do Marcelo Martins, parece que é outro paradigma, totalmente diferente.

Assumindo que eu quero (ou preciso) ficar com o JSP/Servlet paradigma, qual é o melhor caminho Velocity ou Custom Tags.

Agora vc me deixou encucado com uma coisa: Dá para usar os dois ??? (Velocity + Custom Tags). Na minha cabeça se vc usa velocity vc está abandonando JSP.

então, como eu falei no post anterior, eu não sabia se você estava trabalhando com webwork ou não…

pelo que eu vi no webwork ele tem um mecanismo que interpreta as tag’s que você chama nos templates do velocity… isso não faz parte do jsp/servlets… é do webwork…

você escreve uma taglib e pode chamar assim no teu vm:
#tag(nometag “param1=‘value1’” “param2=‘value2’”)

mas, como eu disse, com o webwork…

se você está trabalhando somente com jsp/servlet talvez o melhor caminho pode ser com taglib mesmo… com velocity você tem algo parecido: as macros… mas no meu ver não são melhores que custom tag’s principalmente por ter um número fixo de parâmetros… em alguns casos isso não faz diferença, mas em outros pode ser um “saco”…

fica a seu critério…

té+

velocity rules total
o seu designer nunca vai atrapalhar!
enquanto voce tem trocentas tags das suas taglibs, no velocity voec tem 8, sendo que voce realmente sua 4 delas.