Duvida com datas no JSF
Bom dia,
Estou com certa dificuldade com datas no JSF ...
tenho uma tabela no BD com um campo date ....
Mas estou recebendo o seguinte erro ao tentar inserir a data no BD:
java.lang.IllegalArgumentException: argument type mismatch
Segue minha entidade:
import java.sql.Date;
public class Usuario {
private int id;
private String nome;
private String email;
private Date nasc;
getters e setters
meu UsuarioDao:
public class UsuarioDao extends Dao {
public UsuarioDao(){
super();
}
PreparedStatement ps = null;
public void addUsuario(Usuario user)throws Exception{
abre();
ps = con.prepareStatement("insert into usuario values(null, ?,?,?)");
ps.setString(1, user.getNome());
ps.setString(2, user.getEmail());
ps.setDate(3, user.getNasc());
ps.execute();
ps.close();
fechar();
}
}
meu managedBean:
public class UsuarioFace {
private UsuarioDao ud = new UsuarioDao();
private Usuario user;
public String preparaAddUsuario(){
user = new Usuario();
return "goToAddUsuario";
}
public String addUsuario() throws Exception{
ud.addUsuario(user);
return "usuarioCadastrado";
}
getters e setters
jsp com form de cadastro:
<f:view>
<h1>Adicionar novo usuário </h1><br/>
<h:form>
Nome <h:inputText id="nome" required="true" value="#{usuarioFace.user.nome}">
</h:inputText><h:message for="nome"/><br/>
Email <h:inputText id="email" required="true" value="#{usuarioFace.user.email}">
</h:inputText><h:message for="email"/><br/>
Nascimento <h:inputText id="nasc" required="true" value="#{usuarioFace.user.nasc}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:inputText><h:message for="nasc"/><br/><br/>
<h:commandButton action="#{usuarioFace.addUsuario}" value="Add usuário"/>
</h:form>
</f:view>
Como posso resolver isso??
Grato
Estou com certa dificuldade com datas no JSF ...
tenho uma tabela no BD com um campo date ....
Mas estou recebendo o seguinte erro ao tentar inserir a data no BD:
java.lang.IllegalArgumentException: argument type mismatch
Segue minha entidade:
import java.sql.Date;
public class Usuario {
private int id;
private String nome;
private String email;
private Date nasc;
getters e setters
meu UsuarioDao:
public class UsuarioDao extends Dao {
public UsuarioDao(){
super();
}
PreparedStatement ps = null;
public void addUsuario(Usuario user)throws Exception{
abre();
ps = con.prepareStatement("insert into usuario values(null, ?,?,?)");
ps.setString(1, user.getNome());
ps.setString(2, user.getEmail());
ps.setDate(3, user.getNasc());
ps.execute();
ps.close();
fechar();
}
}
meu managedBean:
public class UsuarioFace {
private UsuarioDao ud = new UsuarioDao();
private Usuario user;
public String preparaAddUsuario(){
user = new Usuario();
return "goToAddUsuario";
}
public String addUsuario() throws Exception{
ud.addUsuario(user);
return "usuarioCadastrado";
}
getters e setters
jsp com form de cadastro:
<f:view>
<h1>Adicionar novo usuário </h1><br/>
<h:form>
Nome <h:inputText id="nome" required="true" value="#{usuarioFace.user.nome}">
</h:inputText><h:message for="nome"/><br/>
Email <h:inputText id="email" required="true" value="#{usuarioFace.user.email}">
</h:inputText><h:message for="email"/><br/>
Nascimento <h:inputText id="nasc" required="true" value="#{usuarioFace.user.nasc}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:inputText><h:message for="nasc"/><br/><br/>
<h:commandButton action="#{usuarioFace.addUsuario}" value="Add usuário"/>
</h:form>
</f:view>
Como posso resolver isso??
Grato
Cleiton Tavares.
Curtidas 0
Respostas
Dyego Carmo
29/01/2010
Por favor , cole o exception INTEIRO para que eu consiga analisar aonde esta o problema
GOSTEI 0
Dyego Carmo
29/01/2010
Se eu nao me engano JSF soh trabalha com java.util.Date e nao java.sql.Date , tente trocar tambem...
GOSTEI 0
Cleiton Tavares.
29/01/2010
Diego,
Mudei pra util>Date na minha entidade ... , mas no UsuarioDao estou sendo forçado a fazer um cast pra sql.Date:
ps.setDate(3, (Date) user.getNasc());
...ai me retorna a exception abaixo:
Apache Tomcat/6.0.13 - Error reportjava.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date dao.UsuarioDao.addUsuario(UsuarioDao.java:23) controle.UsuarioFace.addUsuario(UsuarioFace.java:25) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.el.parser.AstValue.invoke(AstValue.java:131) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) javax.faces.component.UICommand.broadcast(UICommand.java:383) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
Mudei pra util>Date na minha entidade ... , mas no UsuarioDao estou sendo forçado a fazer um cast pra sql.Date:
ps.setDate(3, (Date) user.getNasc());
...ai me retorna a exception abaixo:
Apache Tomcat/6.0.13 - Error reportjava.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date dao.UsuarioDao.addUsuario(UsuarioDao.java:23) controle.UsuarioFace.addUsuario(UsuarioFace.java:25) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.el.parser.AstValue.invoke(AstValue.java:131) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) javax.faces.component.UICommand.broadcast(UICommand.java:383) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
GOSTEI 0
Dyego Carmo
29/01/2010
Crie um java.sql.Date apartir de um java,util.Date
public class MainClass {
public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
}
}
public class MainClass {
public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
}
}
GOSTEI 0
Dyego Carmo
29/01/2010
Opa , problema resiolvido ?
GOSTEI 0
Cleiton Tavares.
29/01/2010
opa Dyego,
Desculpe pela demora ... estava de férias e deixeu um pouco os codigos de lado.
Mas esta tudo OK ...
Obrigado
Desculpe pela demora ... estava de férias e deixeu um pouco os codigos de lado.
Mas esta tudo OK ...
Obrigado
GOSTEI 0