Well for starters:

Unless your persisting form objects, it really doesn't matter what type they
are declared as. Typically you want this to be something the JSP/HTML can
handle. I'd be curious to know what happens if you try to pass a value back
for a Timestamp OR a Date object in an <html:hidden> tag. Bet it won't
work...

What I think you care about is that your Business Object Model follows the
iBatis guidelines. 

And as far as issue one goes, LA! (Youre preaching to the choir). You want
those fields put into the objects youre going to throw into iBatis as easily
as possible.

If you can validate your DateStrings, BeanUtils can do the job with by
registering the appropriate converter.

My choice however is FormDef, precisely because of reason #1 (I use
Hibernate with it)

http://formdef.dev.java.net

-----Original Message-----
From: Mark Bennett [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 22, 2005 3:46 PM
To: Struts Users Mailing List
Subject: RE: java.util.Date vs java.sql.Timestamp

1) save typing: casting, try/catch blocks, library calls
2) using iBatis and following the adivice of Clinton Begin in the manual:
   * The use of java.sql.Timestamp is discouraged. It is best practice to
use java.util.Date instead.
3) want to know if it can be done

Mark

-----Original Message-----
From: Joe Hertz [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 22, 2005 3:39 PM
To: 'Struts Users Mailing List'
Subject: RE: java.util.Date vs java.sql.Timestamp


Why do you care about how it comes into the form bean?

Usually the big deal is how it winds up in the business object and there are
tools for that. FormDef does a really nice job, especially if you have to
deal with international date formats.


-----Original Message-----
From: Mark Bennett [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 22, 2005 3:27 PM
To: Struts Users Mailing List
Subject: RE: java.util.Date vs java.sql.Timestamp

Thanks for the reply, but unless I can get it to work with java.util.Date I
will stick with the java.util.Timestamp because THIS DOES WORK implicitly
without having to use SimpleDateFormat or any try/catch blocks.

<html:hidden name="myBean" property="myRecord.myDate"/>      <!-- modify
with date picker tag -->

  public setMyDate(Timestamp myDate) {
    this.myDate = myDate;
  }
  public Timestamp getMyDate() {
    return this.myDate;
  }

Using this I can round round trip the date as Timestamp using only basic
getters and setters.  But I would PREFER it was java.util.Date which I can't
get to work.

Mark

-----Original Message-----
From: Ashish Kulkarni [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 22, 2005 2:59 PM
To: Struts Users Mailing List
Subject: Re: java.util.Date vs java.sql.Timestamp


Hi
I would read the property as a String and then use
SimpleDateFormat to convert it to time stamp, i am not
sure if this conversion is done automatically in bean
public setMyDate(String myDateString)
 {
//i dont remmember the date format
try
{
SimpleDateFormat format = new SimpleDateFormat();
java.sql.Timestamp myDate =
format.parse(myDateString);
this.myDate = myDate;
}
catch(Exception exc)
{
}

   }
--- Mark Bennett <[EMAIL PROTECTED]> wrote:

> How can I have struts put a java.util.Date object
> into a Bean?
>
> I have found that I can set a Timestamp object into
> a bean.  THIS DOES WORK
> (below).  However, if I change the type on the bean
> to java.util.Date then I
> get a stack trace (also below).  I've also tried
> different formatting like:
> value="Sat Jan 01 00:00:00 EST 2005".  Any hints?
> Thanks.
>
> Mark
>
>
> class MyBean {
>   private java.sql.Timestamp myDate;
>
>   public setMyDate(java.sql.Timestamp myDate) {
>       this.myDate = myDate;
>   }
> }
>
> <input type="hidden" name="myDate" value="2005-01-01
> 00:00:00.0">
>
>
>
>
>
> java.lang.IllegalArgumentException: argument type
> mismatch
>       at java.lang.reflect.Method.invoke(Native Method)
>       at
>
org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.j
> ava:1789)
>       at
>
org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.j
> ava:1684)
>       at
>
org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:17
> 13)
>       at
>
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
>       at
>
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
>       at
>
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
>       at
>
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.j
> ava:821)
>       at
>
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
>       at
>
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>       at
>
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
>       at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>       at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
> :263)
>       at
>
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
> :200)
>       at
>
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
> ntext.java:2390)
>       at
>
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
> :1959)
>       at
>
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
>       at
>
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>
>




__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to