opensubscriber
   Find in this group all groups
 
Unknown more information…

d : dev@tapestry.apache.org 20 August 2009 • 6:34PM -0400

[Tapestry Wiki] Update of "Tapestry5HowToFormatDateTimeEtc" by SebastianHennebrueder
by Apache Wiki

REPLY TO AUTHOR
 
REPLY TO GROUP




Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for change notification.

The following page has been changed by SebastianHennebrueder:
http://wiki.apache.org/tapestry/Tapestry5HowToFormatDateTimeEtc

New page:
This page describes how to format Date, Time, Floats, Strings, currencies etc using standard components and extensions.
== Page class ==
The page class provides the following properties:
{{{
public Date getDateProperty() {
return new Date();
}

public double getCurrencyValue() {
return 2.2;
}

public String getCurrency() {
return "EUR";
}
}}}

== Output of Date, Time or DateTime ==
The output component of Tapestry uses java.text.Format to format a value.
=== Using a literal ==
{{{
<t:output format="literal:MMM yyyy" value="dateProperty"/>
}}}
Output result: Feb 2009
=== Using a resource bundle entry ===
The following approach allows to format a date adapted to the users local.
{{{
<t:output format="message:month_year" value="dateProperty"/>
}}}
The format String is picked from the resource bundle.
Extract of the resource bundle (for example app.properties)
{{{
month_year=MMM YYYY
}}}
Output result: Feb 2009
=== Using a String.format expression ===
In order to achieve this, we need to add a new binding expressions. This is explained on the following page.
Tapestry5HowToAddMessageFormatBindingPrefix - Creating a binding expression using String.format]

${format:common_month_year=dateProperty}
''common_month_year'' is an entry of the resource bundle
Extract of the resource bundle (for example app.properties)
{{{
common_month_year=%1$tb %1$tY
}}}
Output result: Feb 2009

== Formatting of numbers ==
=== Tapestry's output component ===
The default output component has limitations for number formatting. In order to format a decimal you need to pass an instance of DecimalFormat to the component.
First provide the method in the class
{{{
public DecimalFormat getCurrencyFormat(){
  return new DecimalFormat("0.00");
}

}}}
Usage
{{{
<t:output format="numberFormat" value="currencyValue"/>
}}}
There is an extension to this component, allowing a simple definition of formats.

Tapestry5OutputLocaleNumber - Localized output component

=== Using a String.format expression ===
In order to achieve this, we need to add a new binding expressions. This is explained on the following page.
Tapestry5HowToAddMessageFormatBindingPrefix - Creating a binding expression using String.format
{{{
${format:twodigit=currencyValue,currency}
}}}
''twodigit'' is an entry of the resource bundle
Extract of the resource bundle (for example app.properties)
{{{
twodigit=%.2f
}}}
Output result: 2.20
== Other formatting ==
The binding extension Tapestry5HowToAddMessageFormatBindingPrefix uses String.format. It supports all kinds of formattings and can even pass multiple values to the formatting String.
Sample to format a currency: 2.20 EUR
Resource bundle entry
{{{
currency=%.2f %s
}}}
Usage
{{{
${format:currency=currencyValue,currency}
}}}

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tape...
For additional commands, e-mail: dev-help@tape...

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

opensubscriber is not affiliated with the authors of this message nor responsible for its content.