Popular Objeto Rapidamente?

Olá Pessoal,

estou desenvolvendo uma aplicação web usando jsp+servlet, e gostaria de evitar o seguinte:

temos um formulario com varios campos e qdo submeto esse formulario, nao gostaria de usar request.getParamenter(“name”) para cada campo, queria fazer algo como


// esse código na página do formulario
<jsp:useBean id="nomeBean" scope="session" class="usebean.Usuario"/>

//esse código na página que o formulario irá submeter 
<jsp:setProperty name="nomeBean" property="*"/> 

desta forma funciona se todos os campos da classe Usuario forem Strings, que no caso não acontece logicamente, pois na realidade temos na classe Usuario atributos com tipos como boolean, Date, Cargo e ai desta forma não consigo popular esses campos que são desse tipo, se alguem sabe alguma solucao para que eu evite usar vários request.getParameter(“name”) dessa forma ou com outra solucao usando jsp e servlets, agradeço a atenção de vcs, Thiago

As soluções que fazem isso normalmente estão ligadas a alguns frameworks, como o Strits (1 e 2), Spring MVC, VRaptor, etc. E se vc estiver usando “servlet puro”, ou seja, uma classe servlet seu, com seus proprios commands, seu proprio FrontController, etc. seria muita coisa só pra preparar um objeto.

Te aconselho a usar reflexão e, dentro da sua servlet, chamar um método para o preenchimento dessas informações…

A porcaria do Struts muito tempo te obrigou a fazer um FormBeam para isso…

Outros frameworks, como o Mentawai, te permitem utilizar um simples POJO Java para isso…

Com o Mentawai eu simplesmente faço:


User user = (User) input.getObject(User.class);

// ou

filter(new VOFilter("user", User.class));

User user = (User) input.getValue("user");

se você não quiser usar um framework de mercado pode fazer uma classe que faça isso via reflection tranquilamente.

esse link la no meio mostra como fazer isso tranquilamente
http://www.tatanka.com.br/palestras/cj2005-Web+MVC+IoC+Reflection/

Acho que o BeanUtils da Apache Commons pode te ajudar a fazer isso rapidamente também…

[quote=ricardo_rico]
Acho que o BeanUtils da Apache Commons pode te ajudar a fazer isso rapidamente também…[/quote]
O problema do BeanUtils é a Localidade, as formatações utilizadas e os “Convertedores” que vc precisa fazer em especial para a sua classe, a não ser que vc crie um Form (seguindo os modelos do Struts) com todos os atributos String… mas ai vc vai ter duas classes do tipo POJO só pra trafegar informações… se vc conseguir fazer isso direto, fica mais facil…