API para EL estilo ${asdasdas}

Olá pessoal.

To numa correria aqui, preciso de uma API para EL.
De preferência algo bem simples, do tipo que eu diga para ela quais os meus valores dos parâmetros em algo como um map e que ela parseia um valor do tipo ${nomeDoParâmetro}.

Alguém recomenda uma com uma baixa curva de aprendizado?

Não rolaria o commons-el?

Deve ter perdido em algum lugar junto com o as libs do tomcat.

Este tutorial talvez ajude: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html#wp71019

Se vc tiver o Head First JSP e Servlet também é uma mão na roda para aprender EL.

Por default, um comando do tipo ${meuMap.valor} acessaria um map chamado “meuMap” que está na requisição e acessaria o valor cuja key é igual a “valor”.

Mas vale a pena vc também procurar sobre a diferença entre ${meuMap.valor} para acessar maps ou beans, e ${minhaLista[0]} para acessar maps, listas, arrays e beans.

Até +

Certa vez eu precisei disso para fazer binds em variáveis SQL, alguém aqui no fórum sugeriu até o uso da commons-EL, mas eu achei canhão pra matar formiga.

Se você precisa apenas buscar valor (nao precisa processar expressao aritmetica, por exemplo), pode usar a commons-beanutils pra navegar nos beans e achar os valores.

se não fosse pedir muito, eles bem que poderiam colocar só um exemplozinho na página deles…

O Velocity também faz isso.

Pensei exatamente o mesmo quando fui tentar usar commons-EL.

vc precisa parsear coisas do tipo ${blablabla} e o conteudo (blablabla) seria uma chave de um HashMap?

e tb poder acessar propriedades desse objeto guardado? algo do tipo de ${user.nome} ??? onde buscaria o “user” dentro de um Map e acessaria a propriedade “name”???

se for isso, sugiro vc nao usar API pra isso nao…

o pessoal tem mania de falar aquela frase irritante e corta-barato “pq nao usar uma coisa ao invez de tentar reiventar a roda?”
eu sou a favor de vc desenvolver as coisas as suas necessidades…

claro q usar API prontas é legal, desde q vc faça proveito de pelo menos 80% de toda API… senao, vc só vai entupir seu códigos com 500 classes inúteis… seu projeto q só com suas classes seria apenas alguns KBs (coisa bem simples) para algumas dezenas de MBs se usar framework, APIs pra resolver tudo… e vc ainda perde o controle das suas coisas…

se vc quer apenas resolver o problema q eu citei no começo do meu post, faça vc mesmo, é divertido, vc aprende mais, seu projeto fica menor, vc entende o q acontece nele, e o código é seu…
ja fiz uma coisa mto parecida com esse seu problema
pra resolver isso, basta 2 regular-expression e um manager q trata o seu Map como se fosse um HttpServletRequest (pelo menos na parte de Attributes)… vai precisar usar reflection tb pra poder acessar atributos do objeto (de forma recursiva para casos ${obj.obj1.obj2.name})

qualquer duvida sobre implementacao, posta aí

desculpa pelo desabafo.
abraços

Outra opção talvez seja usar OGNL, que parece pelo menos ter alguma documentação aparentemente melhorzinha.

É só uma sugestão, dependendo do que você está querendo fazer, seria mais interessante BeanUtils da jakarta ou até mesmo uma classe utilitária utilizando reflection, como sugerido nos posts acima.

Se o problema for bind, por exemplo, não valeria a pena usar as classes beanWrapper, PropertiesEditor e DataBind do Spring?

Freemarker?

fiz uma solução caseira mesmo
Queria algo simples, como o a EL do Maven.

Velocity:
http://www.guj.com.br/posts/list/19118.java

Olá amigo uso somente a JSTL que trabalha muito bem e é oficial pela SUN.

Bastante simples de trabalhar e instalar em sua aplicação.

precisas de ajuda :?: , da um tok :wink:

Abraços.

Boa! Velocity! vou testar

O commons-el é usado no genesis aqui