JSF2.2入門 第8回コンバータ


kanban8

katatsumuri入力値をコンバートする

数値、日付などユーザーが文字列で入力した情報を都合のよいデータ形式に自動的に変換してくれます。

leaf入力と出力兼用JSFページ

日付を入力して色々な形式で表示します。実行画面をみてもらったほうがいいですね。

20160608-1

入力の形式は指定しないといけません。このとおり入れてもらいます。送信ボタンを押すと3つのスタイルで表示されます。これは下のコードの青、緑、紫のところに対応しています。

入力値用のコンバータタグはh:inputTextタグの内側に置きます。表示用のコンバータタグはh:outputTextタグの内側に置きます。

f:convertDateTime dateStyle=”full” type=”date”は日付の形式dateStyleはfullで年月日表示、typeはdate、つまり時刻抜きの日にちだけ。

f:convertDateTime dateStyle=”full” timeStyle=”long” type=”both”はdateStyleはlongで時分秒まで、typeはbothなので日にちと時刻の両方です。

f:convertDateTime pattern=”EEEEEEEE, MMM d,yyyy” type=”date”はpatternで表示形式を自分で設定しています。次のセクションにこれらの記号は解説してありますのでご覧ください。

<h:form>
<h:panelGrid columns=”2″ styleClass=”grid1″ >
日付の入力(YY/MM/DD hh:mm):
<h:inputText value=”#{dateBean.theDay}”>
<f:convertDateTime dateStyle=”short” timeStyle=”short” type=”both”/>
</h:inputText>
fullスタイル:
<h:outputText value=”#{dateBean.theDay}”>
<f:convertDateTime dateStyle=”full” type=”date”/>
</h:outputText>
date timeスタイル:
<h:outputText value=”#{dateBean.theDay}”>
<f:convertDateTime dateStyle=”full” timeStyle=”long” type=”both”/>
</h:outputText>
パターン指定:
<h:outputText value=”#{dateBean.theDay}”>
<f:convertDateTime pattern=”EEEEEEEE, MMM d,yyyy” type=”date”/>
</h:outputText>
<h:outputText value=””/>
<h:panelGrid columns=”2″ styleClass=”grid1″ >
<h:commandButton type=”submit” value=”送信” styleClass=”bt”/>
<h:commandButton type=”reset” value=”リセット” styleClass=”bt”/>
</h:panelGrid>
</h:panelGrid>
</h:form>

leafパターン

patternで指定できるものはjava.text.SimpleDateFormatで定義されているものです。前の例ではEEEEEEEEとたくさんEを並べましたが、これは最大文字数を表しますので、もし1文字Eだと金曜日は「金」と表示されます。

文字 日付または時刻のコンポーネント 表示
G 紀元 Text AD
y 1996; 96
Y 暦週の基準年 2009; 09
M July; Jul; 07
w 年における週 Number 27
W 月における週 Number 2
D 年における日 Number 189
d 月における日 Number 10
F 月における曜日 Number 2
E 曜日の名前 Text Tuesday; Tue
u 曜日の番号 (1 = 月曜、…、7 = 日曜) Number 1
a 午前/午後 Text PM
H 一日における時 (0 – 23) Number 0
k 一日における時 (1 – 24) Number 24
K 午前/午後の時 (0 – 11) Number 0
h 午前/午後の時 (1 – 12) Number 12
m Number 30
s Number 55
S ミリ秒 Number 978
z タイムゾーン 一般的なタイムゾーン Pacific Standard Time; PST; GMT-08:00
Z タイムゾーン RFC 822 タイムゾーン -0800
X タイムゾーン ISO 8601 タイムゾーン -08; -0800; -08:00

leafマネージドビーン

特に変わったところはありませんが、次のとおりです。Dateのオブジェクトになっています。

@Named(value=”dateBean”)
@RequestScoped
public class DateBean {

Date theDay;

public DateBean() {
}

public Date getTheDay() {
return theDay;
}

public void setTheDay(Date theDay) {
this.theDay = theDay;
}
}

leafほかのコンバータ

数字用のコンバータとしてf:convertNumberがあります。currencyCodeプロパティで通貨として扱ったり、maxFractionDigitsで小数点以下の桁数指定、maxIntegerDigitsで最大の整数範囲、patternでパターン指定などができます。

またf:converter タグというものもあって、自分自身でまるっきり新しいコンバータをカスタムメイドして使うこともできます。

previousnext

JSF2.2のすべてをまとめたkindle電子書籍 「JavaServer Faces2.2 入門」もぜひご覧ください。パソコン、iPhone、Androidどんな端末用にもamazonが無料のKindle電子書籍リーダーを用意しています。それをつかってKindle本を手軽にお楽しみください。あなたが今お使いの端末用Kidle電子書籍リーダーのご案内

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA