pessol tenho seguinte atributo numa classe javabean:
import java.util.Date;
private Date dataNascimento;
public Date getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}
no JSP tenho um campo
<input type="text" name="dataNascimento"/>
p/ cadastrar tal valor no Banco uso o seguinte trecho
st.setDate(2, (java.sql.Date) u.getDataNascimento());
porem qdo eu preecho o bean e vou executar o metodo de cadastro no Servlet ta dando esse erro:
java.lang.IllegalArgumentException: Cannot invoke beans.Usuario.setDataNascimento - argument type mismatch
uso o oracle e o campo tem o tipo DATE
eu preciso transformar de String p/ Date é isso ?
como devo proceder ?
thanks !!
Vc nao pode realizar o cast dessa forma:
Faça assim:
st.setDate(2, new java.sql.Date( u.getDataNascimento().getTime() ));
Resolverá seu problema …
infelizmente nao resolveu … 
ele nao conseguindo preencher o bean, ou seja, nao consegue setar o valor p/ dataNascimento pq este está incompativel …
ta fogos rsrsr !!
a e so sobre o cast… pq tem q ser feito daquela forma ?
Me mostre como vc pega do HTML e repassa para bean …
[quote=ramilani12]Me mostre como vc pega do HTML e repassa para bean …
[/quote]
<input type="text" name="dataMatricula" >
Bom se o usuário digitar qualquer coisa?
Uma forma:
No servlet
private static SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");
try
{
Date data = fmt.parse(request.getParameter("dataMatricula"));
} catch(ParseException ex)
{
System.out.println("Nao foi possivel validar a data");
}
O metodo parse da Classe SimpleDateFormat ira verificar se data é valida senao ele lancara excpetion
Fri Jan 12 01:29:00 BRST 6790
ele ta escrevende data assim , nao deveria ser no formato especificado ?
continua dando o mesmo erro, deve ser por isso 
Vc fez o teste ali que sugeri , isso esta me cheirando que vc deu Date.toString()
teste q vc fala é esse:
[code]SimpleDateFormat fmt = new SimpleDateFormat(“dd/mm/yyyy”);
try {
Date data = fmt.parse(request.getParameter("dataMatricula"));
System.out.println(data);
} catch (ParseException ex) {
out.println("Nao foi possivel validar a data");
}[/code]
Ok então ele fez o correto o parse da data agora para comprovar faço o contrário:
Transforme ele para String com metodo format() com formato que vc definiu dd/MM/yyyy
Lembrando que mes é com MM maiúsculo o m minusculo se refere a minutos de uma hora
Veja no Java doc:
http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");
try {
Date data = fmt.parse(request.getParameter("dataMatricula"));
System.out.println(data);
System.out.println("Data Formatada "+fmt.format(data));
} catch (ParseException ex) {
out.println("Nao foi possivel validar a data");
}
vou dormir amanha tem novas cenas rsrrs
flw !! brigadao !!
essa parte de transformar pra data eu consegui, porem nao consigo fazer o BeanUtils.populate
preencher o bean
Usuario u = new Usuario();
try {
Locale locale = new Locale("pt-BR");
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy",locale);
Date d = formatador.parse(request.getParameter("dataNascimento"));
u.setDataNascimento(d);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// POPULANDO BEAN USUARIO
try {
BeanUtils.populate(u, request.getParameterMap());
out.println("bean usuario ok !");
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (InvocationTargetException e2) {
e2.printStackTrace();
}