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: [email protected] For additional commands, e-mail: [email protected]
