How struts property tag works with date value?

java, jsp, struts-tags, struts2

Solution

Nice Question.

`<s:property value="{#someDate}"/>` is equal to `<s:property value="someDate.toString()"/`> or `${someDate}` where as `<s:property value="someDate"/>` is using built in type conversion of xwork2 which uses the SHORT format for the Locale associated with the current request for dates.

See Built in Type Conversion Support

value="{#someDate}" means value="someDate.toString()"

it converts date to date.tosting() that is why you are getting [Wed Feb 7 00:00:00 IST 2014]

To handle date formats there is a special tag in struts2

<s:date name="someDate" format="dd/MM/yyyy" />

Prints

17/04/2014

Also see

<s:date name="someDate" format="dd/MMM/yyyy" />

Prints

17/Apr/2014 

Also there is attibute `nice="true"`

<s:date name="someDate" nice="true" />

Prints

 2 days ago

Problem

I have a JSP page where i am getting a Date value from my action class. I am not able to understand how it is handled as: ``` <s:property value="#someDate"/> ``` gives me date ``` 2/7/14 ``` whereas ``` <s:property value="{#someDate}"/> ``` gives me Date as ``` [Wed Feb 7 00:00:00 IST 2014] ``` Can someone tell me how date value is actually handled here, as date is returned in different formats?

Original source