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...
opensubscriber is not affiliated with the authors of this message nor responsible for its content.