Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


独自のフォーマッタを定義する方法の詳細については、「フォーマッタの作成」を参照してください。

また、Nexaweb には UI での表示用にデータを変換するための次のフォーマッタタグが用意されています。
  • messageFormatter
  • decimalFormatter
  • dateFormatter
  • currencyFormatter
  • stringToDateFormatter
  • formatterChain
定義済みフォーマッタの詳細については、「用意されているタグ」を参照してください。

メモ: Nexaweb は、すべてのニーズを満たす検証を提供するわけではありません。たとえば、Nexaweb には州の略語、郵便番号、電話番号などのためのフォーマッタは用意されていません。ただし、Nexaweb が提供する formatter タグを使用すれば、これらの機能を実現するフォーマッタを簡単に作成できます。

 

Supplied Formatter Tags

Platform 4.2+が必要
用意されているフォーマッタ タグ

...

属性
説明
必須/省略可能
id
システム全体で一意な値を使用し、この dateFormatter を一意に識別します。
必須
locale
"en_US" などのロケール文字列です。
省略可能
format
このフォーマッタへの入力が Date 型または Long 型の場合、dateFormatter はこのパターンを使用して、フォーマット設定を実行する SimpleDateFormat インスタンスを構築します。
メモ: format を指定した場合、dateFormatInstancedateStyletimeStyleの各属性は無視されます。
すべてのロケールが SimpleDateFormat をサポートするわけではありません。したがって完全な汎用性を実現するには、formatではなく、無視されると指摘した属性を使用します。
省略可能
stringToDateFormat
こ のフォーマッタへの入力が String 型の場合、埋め込みの StringToDateFormatter はこのパターンを使用して String を Date に変換します。一般に、DateFormatter への引数が String の場合、次の手順が実行されます。
  1. 埋め込みの StringToDateFormatter が stringToDateFormat (指定されている場合) を使用して、String を Date に変換します。stringToDateFormatが指定されている場合は、SimpleDateFormat インスタンスを構築します。それ以外の場合は、デフォルトのパターンを使用して SimpleDateFormat インスタンスが構築されます。このインスタンスでは、属性値 lenient および timeZone が設定されます。この SimpleDateFormat インスタンスを使用した解析が失敗した場合、StringToDateFormatter は次の処理も試みます。

    - String を Long として解析し、解析済みの Long を使用して Date オブジェクトを構築します。
    - RFC1123 フォーマット "EEE, dd MMM yyyy HH:mm:ss z" を使用します。
    - RFC1036 フォーマット "EEEEEEEEE, dd-MMM-yy HH:mm:ss z" を使用します。ASCTIME フォーマット "EEE MMM d HH:mm:ss yyyy" を使用します。

    これら 3 つのフォーマッタのデフォルトのロケールは Locale.US、タイムゾーンは GMT です。

  2. 手順 1 で返された Date オブジェクトを、format (指定されいてる場合)、または dateFormatInstance、dateStyle、timeStyle の各属性の組み合わせを使用して、フォーマット設定します。フォーマット設定を行うために選択された DateFormat インスタンスは、locale属性と timeZone 属性の値を継承します。
省略可能
stringToDateLocale
埋め込みの StringToDateFormatter が文字列引数を解析するために使用するロケールです。
省略可能
dateFormatInstance
日付のフォーマットを、日付のみ、時間のみ、または日付と時間の両方として指定します。
値: date、time、または date,time
デフォルト: date
メモ: format属性を使用した場合、dateFormatInstanceは無視されます。詳細については、format 属性の説明を参照してください。
省略可能
dateStyle
dateFormatInstance 属性で指定する日付フォーマットの一部として日付を含める場合は、この属性を使用して、フォーマット設定される日付文字列の長さを指定します。
値: short、medium、long、または full
 
timeStyledateFormatInstance属性で指定したdata formatにtimeを含む場合、この属性を使用しformatted timeの長さを指定します。
値: short、medium、long、または full
デフォルト: medium
メモ:format属性を使用した場合、この属性は無視されます。詳細については、format 属性の説明を参照して下さい。
 
LenientDateFormatterへの入力が文字列の場合、StringToDateFormatterがlenient parsingを行うかどうか指定する
値: true | false
デフォルト:true
 
timeZoneこの Dateformatterへの入力をパースおよび/またはフォーマットするために使用する time zone 文字列を指定する
値:time zone 文字列、例えば PST
この属性を使用しない場合、TimeZone.getDefault() がデフォルト TimeZone を提供する。
 

stringToDateFormatter Tag

Nexaweb Java アプリケーションにのみ利用可能

...

属性説明必須/省略可能
idシステム全体で一意な値を使用し、このdateFormatter を一意に識別します。必須
formatformat() method の文字列引数をDateに変換するために使用する特別なパターン。
この属性を指定するかどうかに拘らず、NexawebはStringをDateに変換するために、次のステップに従います。:
  • 指定したformatもしくはデフォルトフォーマットで構築されたSimpleDateFormat instance を使用しParseする。locale,lenientand timeZone属性値はこのinstanceに設定される。
  • 文字列をLong型としてParseし、parseされたLong型を使用しDate objectを構築する
  • RFC1123 formatを使用: "EEE, dd MMM yyyy HH:mm:ss z"
  • RFC1036 formatを使用: "EEEEEEEEE, dd-MMM-yy HH:mm:ss z"
  • ASCTIME formatを使用: "EEE MMM d HH:mm:ss yyyy"

これら3つのデフォルトformatterのlocaleはLocaleになる。USとtimezoneはGMT。

省略可能
locale"en_US"などのロケール文字列です。Optional
lenientDateFormatterへの入力が文字列の場合、lenient属性はStringToDateFormatter により実施されたparseがlanientかどうかを指定します。Lanientとは?
値: true | false
デフォルト: true
Optional
timeZoneこのDateformatterへの入力をParsingおよび/またはformattingするために使用するtime zone文字列を指定する
値:time zone文字列、例えばPST
この属性を使用しない場合、TimeZone.getDefault()がデフォルトTimeZoneを提供する。
省略可能

 

Creating a Formatter

データをフォーマット設定するモジュールの定義
Nexaweb では、データ バインディング フレームワークの一部として、データを UI での表示用に変換する独自の機能を実装できます。たとえば、データ ソースから返されたカスタム オブジェクトを適切な文字列に変換する独自のフォーマッタを実装することができます。フォーマッタの機能を実装するには、API セクションで定義されている必須インターフェイス (com.nexaweb.plugin.data.formatter.Formatter) を実装する必要があります。

...