org.apache.struts2.components
Class Date

java.lang.Object
  extended by org.apache.struts2.components.Component
      extended by org.apache.struts2.components.ContextBean
          extended by org.apache.struts2.components.Date

public class Date
extends ContextBean

Format Date object in different ways.

The date tag will allow you to format a Date in a quick and easy way. You can specify a custom format (eg. "dd/MM/yyyy hh:mm"), you can generate easy readable notations (like "in 2 hours, 14 minutes"), or you can just fall back on a predefined format with key 'struts.date.format' in your properties file. If that key is not defined, it will finally fall back to the default DateFormat.MEDIUM formatting. Note: If the requested Date object isn't found on the stack, a blank will be returned.

Configurable attributes are :-

Following how the date component will work, depending on the value of nice attribute (which by default is false) and the format attribute.

Condition 1: With nice attribute as true

i18n key default
struts.date.format.past {0} ago
struts.date.format.future in {0}
struts.date.format.seconds an instant
struts.date.format.minutes {0,choice,1#one minute|1<{0} minutes}
struts.date.format.hours {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}
struts.date.format.days {0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}
struts.date.format.years {0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}

Condition 2: With nice attribute as false and format attribute is specified eg. dd/MM/yyyyy

In this case the format attribute will be used.

Condition 3: With nice attribute as false and no format attribute is specified

i18n key default
struts.date.format if one is not found DateFormat.MEDIUM format will be used

Examples

  
  <s:date name="person.birthday" format="dd/MM/yyyy" />
  <s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
  <s:date name="person.birthday" nice="true" />
  <s:date name="person.birthday" />
  
 
Date


Field Summary
static String DATETAG_PROPERTY
          Property name to fall back when no format is specified
static String DATETAG_PROPERTY_DAYS
          Property name that defines the days notation (default: {0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours})
static String DATETAG_PROPERTY_FUTURE
          Property name that defines the future notation (default: in {0})
static String DATETAG_PROPERTY_HOURS
          Property name that defines the hours notation (default: {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes})
static String DATETAG_PROPERTY_MINUTES
          Property name that defines the minutes notation (default: {0,choice,1#one minute|1<{0} minutes})
static String DATETAG_PROPERTY_PAST
          Property name that defines the past notation (default: {0} ago)
static String DATETAG_PROPERTY_SECONDS
          Property name that defines the seconds notation (default: in instant)
static String DATETAG_PROPERTY_YEARS
          Property name that defines the years notation (default: {0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days})
 
Fields inherited from class org.apache.struts2.components.ContextBean
var
 
Fields inherited from class org.apache.struts2.components.Component
actionMapper, COMPONENT_STACK, parameters, stack, throwExceptionOnELFailure
 
Constructor Summary
Date(ValueStack stack)
           
 
Method Summary
 boolean end(Writer writer, String body)
          Callback for the end tag of this component.
 String formatTime(TextProvider tp, Date date)
          Calculates the difference in time from now to the given date, and outputs it nicely.
 String getFormat()
           
 String getName()
           
 String getTimezone()
           
 boolean isNice()
           
 void setFormat(String format)
           
 void setName(String name)
           
 void setNice(boolean nice)
           
 void setTimezone(String timezone)
           
 
Methods inherited from class org.apache.struts2.components.ContextBean
getVar, putInContext, setId, setVar
 
Methods inherited from class org.apache.struts2.components.Component
addAllParameters, addParameter, altSyntax, altSyntax, completeExpressionIfAltSyntax, copyParams, determineActionURL, determineNamespace, end, fieldError, findAncestor, findString, findString, findStringIfAltSyntax, findValue, findValue, findValue, getComponentStack, getParameters, getStack, popComponentStack, setActionMapper, setThrowExceptionsOnELFailure, setUrlHelper, start, stripExpressionIfAltSyntax, stripExpressionIfAltSyntax, toString, usesBody
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATETAG_PROPERTY

public static final String DATETAG_PROPERTY
Property name to fall back when no format is specified

See Also:
Constant Field Values

DATETAG_PROPERTY_PAST

public static final String DATETAG_PROPERTY_PAST
Property name that defines the past notation (default: {0} ago)

See Also:
Constant Field Values

DATETAG_PROPERTY_FUTURE

public static final String DATETAG_PROPERTY_FUTURE
Property name that defines the future notation (default: in {0})

See Also:
Constant Field Values

DATETAG_PROPERTY_SECONDS

public static final String DATETAG_PROPERTY_SECONDS
Property name that defines the seconds notation (default: in instant)

See Also:
Constant Field Values

DATETAG_PROPERTY_MINUTES

public static final String DATETAG_PROPERTY_MINUTES
Property name that defines the minutes notation (default: {0,choice,1#one minute|1<{0} minutes})

See Also:
Constant Field Values

DATETAG_PROPERTY_HOURS

public static final String DATETAG_PROPERTY_HOURS
Property name that defines the hours notation (default: {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes})

See Also:
Constant Field Values

DATETAG_PROPERTY_DAYS

public static final String DATETAG_PROPERTY_DAYS
Property name that defines the days notation (default: {0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours})

See Also:
Constant Field Values

DATETAG_PROPERTY_YEARS

public static final String DATETAG_PROPERTY_YEARS
Property name that defines the years notation (default: {0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days})

See Also:
Constant Field Values
Constructor Detail

Date

public Date(ValueStack stack)
Method Detail

formatTime

public String formatTime(TextProvider tp,
                         Date date)
Calculates the difference in time from now to the given date, and outputs it nicely.

An example:
Now = 2006/03/12 13:38:00, date = 2006/03/12 15:50:00 will output "in 1 hour, 12 minutes".

Parameters:
tp - text provider
date - the date
Returns:
the date nicely

end

public boolean end(Writer writer,
                   String body)
Description copied from class: Component
Callback for the end tag of this component. Should the body be evaluated again?

NOTE: will pop component stack.

Overrides:
end in class Component
Parameters:
writer - the output writer.
body - the rendered body.
Returns:
true if the body should be evaluated again

setFormat

public void setFormat(String format)

setNice

public void setNice(boolean nice)

getName

public String getName()
Returns:
Returns the name.

setName

public void setName(String name)

getFormat

public String getFormat()
Returns:
Returns the format.

isNice

public boolean isNice()
Returns:
Returns the nice.

getTimezone

public String getTimezone()
Returns:
Returns the name.

setTimezone

public void setTimezone(String timezone)


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.