Hi, I'm having an Entity class which contains Date objects, say (excuse me, I'm too lazy to translate all the names ;-)
| @Entity | @Name("vertrag") | @Scope(SESSION) | public class Vertrag implements Serializable { | ... | private Date _vertragsBeginn; | | @Basic | @Temporal(TemporalType.DATE) | public Date getVertragsBeginn() { | return _vertragsBeginn; | } | | public void setVertragsBeginn(Date vertragsBeginn) { | _vertragsBeginn = vertragsBeginn; | } | .... | } Now I'd like to fill in a form and set the values of that entity: | <c:view> | <h:form> | <table border="0"> | <tr> | <td>Vertragsbeginn:</td> | <td><h:inputText value="#{vertrag.vertragsBeginn}"> | <f:convertDateTime type="date" pattern="dd.MM.yyyy"/> | </h:inputText> | </td> | </tr> | </table> | | <FONT color="RED"> <h:messages /> </FONT> | | <h:commandButton type="submit" value="Anlegen" | action="#{registerVertrag.register}" /> | </h:form> | </c:view> | | I got a bean to do it all: | @Stateless | @Name("registerVertrag") | @Interceptors(SeamInterceptor.class) | public class RegisterVertragActionBean implements RegisterVertragAction { | private static final Category _logger = Logger.getInstance(RegisterVertragActionBean.class); | | @In(value = "vertrag") | @Out(value = "vertrag", required = false) | @Valid | private Vertrag _vertrag; | | @PersistenceContext | private EntityManager _em; | | @IfInvalid(outcome = Outcome.REDISPLAY) | public String register() { | _em.persist(_vertrag); | _vertrag = null; | return "success"; | } | } | Looks fine so far for me. However it does seem to me that Hibernate, Seam or JSF MyFaces does not recognize that the property "vertragsBeginn" is a date and tries to set is a a string: | 15:00:27,906 ERROR [[/iv]] Cannot set value for expression '#{vertrag.vertragsBeginn}' to a new value of type java.lang.String | javax.faces.el.EvaluationException: Cannot set value for expression '#{vertrag.vertragsBeginn}' to a new value of type java.lang.String | at org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:304) | at javax.faces.component.UIInput.updateModel(UIInput.java:226) | at javax.faces.component.UIInput.processUpdates(UIInput.java:165) | at javax.faces.component.UIForm.processUpdates(UIForm.java:85) | at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:428) | at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:153) | at org.apache.myfaces.lifecycle.LifecycleImpl.updateModelValues(LifecycleImpl.java:277) | at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:81) | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) | at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) | at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) | at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | at java.lang.Thread.run(Thread.java:595) | Caused by: javax.faces.el.EvaluationException: de.kvbb.ingver.model.Vertrag | at org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:155) | at org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:269) | ... 27 more | Caused by: javax.faces.el.EvaluationException: Bean: de.kvbb.ingver.model.Vertrag, property: vertragsBeginn | at org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:372) | at org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:148) | ... 28 more | Caused by: java.lang.IllegalArgumentException: argument type mismatch | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:368) | What can I do to ensure that the value is converted to a date given the specified format ("dd.MM.yyyy"). I didn't find a Hibernate tag for this purpose (Struts did have this, never mind :-) BTW: I'd like to use the validators/setters for other kind of objects, too. Even, if I have to write my own validator for that. Quite simple thanks to Hibernate... Thanks in advance Markus View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3934917#3934917 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3934917 ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user