| Author |
Unable to set Date field in ManagedBean
|
Jason Milliron
Greenhorn
Joined: Jan 25, 2004
Posts: 22
|
|
Does anyone have a solution to this: "I have a simple bean with a java.util.Date property named "dateOfBirth" with get/set methods. I tried setting its value through JSF's configuration file: ... <managed-property> <property-class>java.util.Date</property-class> <property-name>dateOfBirth</property-name> <value>02-15-2005</value> </managed-property> ... I'm getting: Feb 15, 2005 11:38:09 AM com.sun.faces.application.ApplicationAssociate createAndMaybeStoreManagedBeans SEVERE: Managedbean user could not be created Can't instantiate class: '02-15-2005'. javax.faces.FacesException: Can't instantiate class: '02-15-2005'. I tried various date formats but haven't succeeded. Perhaps there is no internal converter for this type of class?" This is on a Sun Thread but no one really responeded. I am having the same problem. Anyone have a solution?
|
 |
Varun Khanna
Ranch Hand
Joined: May 30, 2002
Posts: 1400
|
|
Seems the java.util.Date condition isn't handled in "ManagedBeanFactory.java". Either you need to fix it Or, Better use Constructor of your backing bean for initialization [ March 08, 2005: Message edited by: Varun Khanna ]
|
- Varun
|
 |
Varun Khanna
Ranch Hand
Joined: May 30, 2002
Posts: 1400
|
|
This method is the real culprit, is not handling Date condition and hence returning CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID.
|
 |
Jason Milliron
Greenhorn
Joined: Jan 25, 2004
Posts: 22
|
|
|
Thanks. I did put it in the constructor in my backing bean, but i can only initialize it once. I'm doing a 1/2 working demo for a new website and I have an event object that has this event date attribute. Until I write all the backend code, i can only initialize this to one date. The site I'm writing will use a DataGrid to display an ArrayList (another managed bean) of these event Managed Beans. Any suggestions? I could hardcode some logic to use different dates. Don't know the best approach.
|
 |
Varun Khanna
Ranch Hand
Joined: May 30, 2002
Posts: 1400
|
|
Originally posted by Jason Milliron: Thanks. I did put it in the constructor in my backing bean, but i can only initialize it once.
The first approach would also have initialized it once only. <managed-property> is an initializing paramter.
I'm doing a 1/2 ... Any suggestions? I could hardcode some logic to use different dates. Don't know the best approach.
I am not able to get you. Can you re-explain. [ March 08, 2005: Message edited by: Varun Khanna ]
|
 |
Jason Milliron
Greenhorn
Joined: Jan 25, 2004
Posts: 22
|
|
<managed-property> is an initializing paramter
I didn't think I could initialize a java.util.Date using managed-property. I had to hard code it in the constructor for the actual backing bean. The 1/2 thing i was talking about was that right now, i'm in phase 1 for this project. This is basically just a working prototype. All my actions are hard coded and not coming from action methods. At this point all my data is static and not coming from the database. any other ideas?
|
 |
white black
Greenhorn
Joined: May 26, 2004
Posts: 2
|
|
you can do this in your JSF file in your bean take care of Java.util.Date and Java.sql.Date
|
 |
Jason Milliron
Greenhorn
Joined: Jan 25, 2004
Posts: 22
|
|
Thanks for all your help. I actaully had the two code parts written like that but you mentioned
take care of Java.util.Date and Java.sql.Date
. Did you mean to go into the method getConvertedValueConsideringPrimitives() and handle the Date part of it? If that's what you meant, i would have to get teh jsf source code and modify that, correct? Then re-zip it and then use that jar file? Sorry for all the responses, i really appreciate it.
|
 |
Varun Khanna
Ranch Hand
Joined: May 30, 2002
Posts: 1400
|
|
Originally posted by Jason Milliron: Thanks for all your help. I actaully had the two code parts written like that but you mentioned . Did you mean to go into the method getConvertedValueConsideringPrimitives() and handle the Date part of it? If that's what you meant, i would have to get teh jsf source code and modify that, correct? Then re-zip it and then use that jar file? Sorry for all the responses, i really appreciate it.
You can change the source code, but if tomorrow you migrate to a higher JSF version, it's going to be pain. There can be other potential problems too such as migration to another server etc. I won't recommend you to touch the JSF source code, especially to implement this functionality. Use the constructor for initialization purpose.
|
 |
Jason Milliron
Greenhorn
Joined: Jan 25, 2004
Posts: 22
|
|
|
Ok, thanks for all your help.
|
 |
 |
|
|
subject: Unable to set Date field in ManagedBean
|
|
|