faces-config.xmlは、JSFアプリケーションで必要なManeged Beanや画面遷移を定義するファイルである。faces-config.xmlはWEB-INFO直下に置く。
| イベントリスナ | 説明 |
|---|---|
| ActionListener | ボタンがクリックされたときに、そのイベント通知を受けるリスナ。 |
| PhaseListener | JSFライフサイクルのフェーズが変更したときに、そのイベント通知を受けるリスナ。 |
JSF HTMLタグは、HTMLのUI部品を出力するためのタグである。
JSPでHTMLタグを使用するためには、taglibディレクティブを宣言する。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
| JSF HTMLタグ | 説明 |
|---|---|
| <h:form> | HTMLの<form>タグを生成する。 |
| <h:outputText> | <span> |
| <h:outputLink> | <a> |
| <h:outputLabel> | <label> |
| <h:outputFormat> | |
| <h:inputText> | <input type="text"> |
| <h:inputSecret> | <input type="password"> |
| <h:inputTextarea> | <textarea> |
| <h:inputHidden> | <input type="hidden"> |
| <h:selectBooleanCheckbox> | <input type="checkbox"> |
| <h:selectManyCheckbox> | <input type="checkbox"> |
| <h:selectManyListbox> | <select> |
| <h:selectManyMenu> | <select> |
| <h:selectOneListbox> | <select> |
| <h:selectOneMenu> | <select> |
| <h:selectOneRadio> | ラジオボタンのHTMLタグ(<input type="radio">)を出力する。 |
| <h:commandButton> | <input type="submit"> |
| <h:commandLink> | <a> |
| <h:dataTable> | <table> |
| <h:column> | <td> |
| <h:graphicImage> | <img> |
| <h:message> | ひとつのメッセージをレンダリングする。 |
| <h:messages> | すべてのメッセージをレンダリングする。 |
| <h:panelGrid> | HTML 4.01仕様の<table>タグをレンダリングする。 |
| <h:panelGroup> | |
| <f:actionListener> | 最も近い親のUIComponentカスタムアクションに関連付けられたUIComponentのActionListenerのインスタンスを登録する。 |
| <f:valueChangeListener> | 最も近い親のUIComponentカスタムアクションに関連付けられているUIComponetでValueChangeListenerのインスタンスを登録する。 |
| <f:attribute> | 最も近い親のUIComponentカスタムアクションに関連付けられたUIComponentに属性を追加する。 |
| <f:param> | 最も近い親のUIComponentカスタムアクションに関連付けられたUIComponentに子UIParameterコンポーネントを追加する。 |
| <f:facet> | 最も近い親のUIComponentカスタムアクションに関連付けられたUIComponentに名前付きファセットを登録する。 |
<h:inputText>は、テキスト入力フィールド(<input type="text">)を出力するJSFタグである。
<h:inputText>タグには次の属性を指定できる。
<h:form>
<h:inputText value="#{bean.property}" />
</h:form>
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | コンポーネントの入力値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
| redisplay | コンポーネントに既に設定されているテキストがある場合、JSPページ再表示の際にそれを出力するか動画を指定する。
|
| size | コンポーネントの大きさ(文字数) |
| maxlength | コンポーネントに入力可能な文字数 |
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | コンポーネントの入力値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
| redisplay | コンポーネントに既に設定されているテキストがある場合、JSPページ再表示の際にそれを出力するか動画を指定する。
|
| cols | コンポーネントの1行の長さ(文字数) |
| row | コンポーネントの行数(文字数) |
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | コンポーネントの入力値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | 選択項目の値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
<h:selectManyCheckbox>タグのボディ内部に記述可能な子要素は、次のとおり。
<h:selectManyListbox>タグのボディ内部に記述可能な子要素は、次のとおり。
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | 選択項目の値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
| size | 表示する選択項目の数を指定する。省略した場合は、すべての選択項目を表示する。 |
<h:selectManyMenu>タグのボディ内部に記述可能な子要素は、次のとおり。
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | 選択項目の値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
<h:selectOneListbox>タグのボディ内部に記述可能な子要素は、次のとおり。
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | 選択項目の値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
| size | 表示する選択項目の数を指定する。省略した場合は、すべての選択項目を表示する。 |
<h:selectOneMenu>タグのボディ内部に記述可能な子要素は、次のとおり。
| 属性名 | 説明 |
|---|---|
| id | コンポーネントのID |
| value | 選択項目の値 |
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| rendered | コンポーネントを出力するか否か |
| disabled | コンポーネントが有効か否か |
| readonly | コンポーネントが読み取り専用か否か |
| converter | コンポーネントに適用するコンバータ |
| converterMessage | コンポーネントに適用されたコンバータによる、型変換エラーのメッセージ |
| required | コンポーネントが入力必須か否かを指定する。trueを指定すると、必須バリデータによる検証が行われる。
|
| requiredMessage | コンポーネントの必須バリデータによる、検証エラーのメッセージ |
| validator | コンポーネントに適用するバリデータメソッド |
| validatorMessage | コンポーネントに適用されたバリデータによる、検証エラーのメッセージ |
| valueChangeListener | コンポーネントに適用するバリューチェンジリスナーメソッド |
| imediate | コンポーネントのバリューチェンジイベントを「入力値の適用フェーズ」で適用するか否か |
JSF HTMLタグの<h:selectOneRadio>は、ラジオボタンのHTMLタグ(<input type="radio">)を出力する。
<h:selectOneRadio>タグのボディ内部に記述可能な子要素は、次のとおり。
JSFコアタグとは、UI部品以外を表すタグである。
JSPでコアタグを使用するためには、taglibディレクティブを宣言する。
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
| JSFコアタグ | 説明 |
|---|---|
| <f:view> | |
| <f:subview> | |
| <f:actionListener> | |
| <f:valueChangeListener> | |
| <f:convertDateTime> | 日付コンバータ |
| <f:convertNumber> | 数値コンバータ |
| <f:converter> | 汎用コンバータ |
| <f:validateLength> | 文字列長バリデータ |
| <f:validateLongRange> | 範囲バリデータ(整数) |
| <f:validateDoubleRange> | 範囲バリデータ(浮動小数点数) |
| <f:validator> | |
| <f:selectItem> | 選択肢 |
| <f:selectItems> | 選択肢 |
| <f:attribute> | |
| <f:param> | |
| <f:facet> | |
| <f:verbatim> | |
| <f:loadBundle> |
コンバータとは、Webブラウザの入力値及び出力値と、WebアプリケーションのJavaデータ型を相互に変換する機能である。コンバータには組込みコンバートとカスタムコンバータの2種類がある。
JSFコアタグの<f:convertDateTime>を使うと、日付の書式を変換することができる。
| 属性名 | 説明 |
|---|---|
| pattern | 日付と時刻の入出力フォーマット |
| type | 日付と時刻の種類
|
| dateStyle | 日付の詳細度 |
| timeStyle | 時刻の詳細度 |
| locale | 日付と時刻のロケール |
| timeZone | 日付と時刻のタイムゾーン |
<h:inputText id="birthday" value="#{studentInput.birthday}">
<f:convertDateTime pattern="yyyy/MM/dd">
</h:inputText>
JSFコアタグの<f:convertNumber>を使うと、数値の書式を変換することができる。
| 属性名 | 説明 |
|---|---|
| pattern | 数値の入出力フォーマット |
| type | 数値の種類
|
| groupingUsed | カンマ区切りの有無
|
| integerOnly | 数値型を変換する際に整数部分のみを対象とするか否か |
| minIntegerDigits | 整数部分の最少桁数 |
| maxIntegerDigits | 整数部分の最大桁数 |
| minFractionDigits | 小数部分の最少桁数 |
| maxFractionDigits | 小数部分の最大桁数 |
| locale | 数値の出力ロケール |
| currencyCode | 通貨コード |
| currencySimbol | 通貨のシンボル |
<h:outputText value="#{account.balance}">
<f:convertNumber groupingUsed="true">
</h:outputText>
| 属性名 | 説明 |
|---|---|
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| id | コンポーネントのID |
| itemValue | 選択肢項目の値(サーバに送信する値) |
| itemLabel | 項目に表示するテキストを指定する。省略時は、itemValue属性に指定した値が適用される。 |
| itemDisabled | 選択肢項目が無効か否か
|
| itemDescription | 選択肢項目の説明 |
| 属性名 | 説明 |
|---|---|
| binding | コンポーネントにバインディングされるマネージドBeanのフィールド |
| id | コンポーネントのID |
| value | SelectItemオブジェクトの配列又はコレクション |
バリデータとは、Webアプリケーションの入力値を検証する機能である。バリデータには組込みバリデータとカスタムバリデータの2種類がある。
入力コンポーネントのrequired属性にtrueを指定すると、コンポーネントの入力値が無い場合に検証エラーとなる。
<h:inputText id="studentName" value="#{studentInput.studentName}" required="true">
</h:inputText>
JSFコアタグの<f:validateLength>を使うと、文字列の長さを検証することができる。
| 属性名 | 説明 |
|---|---|
| maximum | 許容する最大の長さ |
| minimum | 許容する最小の長さ |
<h:inputText id="accountPassword" value="#{accountInput.accountPassword}">
<f:validateLength maximum="16" />
</h:inputText>
JSFコアタグの<f:validateLongRange>又は<f:validateDoubleRange>を使うと、最大値や最小値を検証することができる。
| 属性名 | 説明 |
|---|---|
| maximum | 許容する最大値 |
| minimum | 許容する最小値 |
<h:inputText id="studentAge" value="#{studentInput.studentAge}">
<f:convertNumber type="number" />
<f:validateLongRange minimum="10" maximum="15" />
</h:inputText>