色々な種類のコンポーネントとコアタグを使ってページを作成する方法
Setting Up a Page
-
JSFのWebページに含まれるもの
-
JSFタグライブラリの名前空間宣言
-
HTMLのh:headとh:body
-
ユーザ入力を表すフォームh:form
-
コンポーネントをページに追加するには以下のタグライブラリが必要
-
JSF標準HTMLタグライブラリ
-
JSFコアタグライブラリ
Adding Components to a PageUsing HTMLTags
-
JSF標準HTMLタグライブラリはHTMLのフォームコンポーネントや、基本的なHTML要素を表す
column
|
A column in a table
|
commandButton
|
<input type=type>
|
commandLink
|
<a href>
|
dataTable
|
<table>
|
form
|
<form>
|
graphicImage
|
<img>
|
inputHidden
|
<input type=hidden>
|
inputSecret
|
<input type=password>
|
inputText
|
<input type=text>
|
inputTextarea
|
<textarea>
|
message
|
<span> tag if styles are used
|
messages
|
<span> tags if styles are used
|
outputFormat
|
Plain text
|
outputLabel
|
<label>
|
outputLink
|
<a>
|
outputText
|
Plain text
|
panelGrid
|
<table> element with <tr> and <td> elements
|
panelGroup
|
<div> or <span> element
|
selectBooleanCheckbox
|
<input type=checkbox>
|
selectItem
|
<option>
|
selectItems
|
<option> elements
|
selectManyCheckbox
|
<input> elements of type checkbox
|
selectManyListbox
|
<select> : A list box
|
selectManyMenu
|
<select> : A scrollable combo box
|
selectOneListbox
|
<select> : A list box
|
selectOneMenu
|
<select> : A scrollable combo box
|
selectOneRadio
|
<input type=radio>
|
CommonComponentTag Attributes
-
多くのコンポーネントタグに共通する属性
-
binding
-
id
-
コンポーネントを一意に識別する
-
ほかのコンポーネントやクラスからコンポーネントを参照する際に利用
-
明示的に指定しない時は、JSFにより自動的に付与される
-
immediate
-
入力やコマンドのコンポーネントに紐づくイベント、バリデーション、変換がリクエストパラメータ値が適用されたときに実行されるか
-
入力とコマンドのコンポーネントのimmediate属性値の組み合わせの場合は、コマンドコンポーネントがアクティブになったときの振る舞いに注意する
-
rendered
-
コンポーネントがレンダリングされる条件を指定
-
rvalue形式に限られる
-
style
-
styleClass
-
value
-
外部のデータソースを指定し、コンポーネント値に紐づける
Adding HTML Head and BodyTags
-
h:head で head 要素
-
h:body で body 要素
-
リソースリロケーションを利用するときに有用
Adding a Form Component
-
h:form で入力フォームを生成
-
表示やサブミットのコンポーネントを含む
-
複数のフォームを含めることも可能だが、サブされたフォームの値だけがリクエストパラメータになる
UsingText Components
-
テキストコンポーネントはテキストの参照と編集で使われる
-
入力コンポーネントタグ
h:inputHidden
|
hidden変数
|
h:inputSecret
|
パスワード入力フィールド
|
h:inputText
|
hidden変数
|
h:inputHidden
|
テキストフィールド
|
h:inputHidden
|
テキストエリア
|
-
入力コンポーネントタグの属性
converter
|
コンポーネントのローカルデータを変換するコンバータを指定
|
converterMessage
|
コンバータの処理が失敗したときのメッセージ
|
dir
|
テキストの表示方向 LTR or RTL
|
label
|
エラーメッセージ中でコンポーネントを特定するための名前
|
lang
|
マークアップ中で使われている言語
|
required
|
ユーザ入力が必須か
|
requiredMessage
|
requiredエラーのメッセージ
|
validator
|
管理ビーンのバリデーションメソッド
|
f:validatorMessage
|
バリデート失敗時のエラーメッセージ
|
valueChangeListener
|
値を入力したときの管理ビーンのイベントメソッド
|
-
出力コンポーネントタグ
h:outputFormat
|
ローカライズされたメッセージ
|
h:outputLabel
|
読み取り専用ラベル
|
h:outputLink
|
アクションイベントを生成しない<a>リンク
|
h:outputText
|
一行テキスト
|
-
出力コンポーネントタグの属性
converter
|
コンポーネントのローカルデータを変換するコンバータを指定
|
Rendering aText Field with the h:inputText Tag
-
label属性で、エラーメッセージの項目名を指定
-
value属性で、管理ビーンのプロパティと紐付け
-
required属性がtrueで、入力されなかったらページがリロードされて、エラーメッセージが表示される
-
requiredエラーが起こったときは、ほかのバリデータは実行されない
Rendering a Password Field with the h:inputSecret Tag
-
<input type="password">を出力
-
redisplay属性をfalseにすることで、クエリ文字列やHTMLのソースに表示されるのを防げる
Rendering a Label with the h:outputLabel Tag
-
入力フィールドに対してラベルを付けるときに使う
-
value属性または、h:outputText子要素でラベル値を指定する
Rendering aHyperlink with the h:outputLink Tag
-
アクションイベントなしのハイパーリンクを出力する
-
リンククリック時に処理を行わずに、リンク先をオープンする場合
Displaying a Formatted Message with the h:outputFormat Tag
-
MessageFormatのパターンに従って文字列を出力
-
value属性でメッセージフォーマットを指定
-
f:param子要素でメッセージパラメータを指定
Using CommandComponentTags for Performing Actions and Navigation
-
実行されると何らかのアクションを行うのでボタンやハイパーリンクのコンポーネントは、コマンドコンポーネントと呼ばれる
-
h:commandButtonタグはボタンを出力
-
h:commandLinkタグはハイパーリンクタグを出力
-
h:outputText子タグでリンクのテキストを指定する
-
使用できる属性
-
action
-
遷移先か遷移先を返すMethod Expression
-
actionListener
-
アクションイベントを実行するMethod Expression
Adding Graphics and Images with the h:graphicImage Tag
LayingOut Components with the h:panelGrid and h:panelGroup Tags
-
パネルはコンポーネントセットのレイアウトをするために使う
-
h:panelGrid
-
テーブルの表示
-
columns属性:1列より多い場合に列数を指定
-
columnClasses, footerClass, headerClass, panelClass, rowClasses
-
headerClass属性あり⇒最初の子要素にヘッダーを持たせる
-
footerClass属性あり⇒最後の子要素にヘッダーを持たせる
-
h:panelGroup
-
コンポーネントのセット(ネストされたコンポーネントツリー)をグループ化。
-
テーブルの行
-
layout属性
-
blockなら行を囲むよにdivタグがつく。それ以外はspanタグがつく
Displaying Components for Selecting OneValue
-
<h:selectBooleanCheckbox>
-
<h:selectOneRadio>
-
<h:selectOneMenu>
-
項目リストの中から1つを選択できるドロップダウン
-
value属性は現在選択されている項目に紐づけられる
-
<f:selectItem>,<f:selectItems>子要素で項目を指定
-
<h:selectOneListbox>
Displaying Components for Selecting MultipleValues
-
<h:selectManyCheckbox>
-
value属性値で現在選択されている項目を指定できる
-
layout属性値で表示方向を指定(lineDirection|pageDirection)
-
<f:selectItem>,<f:selectItems>子要素で項目を指定
-
<h:selectManyMenu>
-
<h:selectManyListbox>
Using the f:selectItem and f:selectItems Tags
-
選択項目コンポーネントにネストして、選択項目を指定できる
-
<f:selectItem>
-
1つの選択項目のラベル、値、記述を設定する
-
ページ上で項目リストを定義
-
ビーンのコードが<f:selectItems>に比べて少ない
-
itemValue属性で選択値、itemLabel属性でラベルを指定
-
<f:selectItems>
-
全選択項目のラベル、値、記述を設定する
-
項目はArray,Map,Collection,POJOのコレクションで指定可能
-
異なるリストの結合やグルーピングが可能
-
項目リストは動的に生成できる
Using Data-BoundTable Components
-
<h:dataTable>でデータコレクションをHTMLテーブルで表す
-
<h:column>でテーブル中の列を指定
-
headerClass,footerClassでヘッダとフッタのスタイルを指定できる
-
データレコードをイテレートする(テーブル中の行)
-
繰り返しがないヘッダやフッタ部分では、<f:facet>を使う。
-
<f:facet>の子要素で複数のコンポーネントをまとめるには、<h:panelGroup>を使う
-
value属性でテーブルとして描画されるデータを指定
-
ビーンのリスト、配列
-
ビーン
-
javax.faces.model.DataModel
-
java.sql.ResultSet
-
javax.servlet.jsp.jstl.sql.Result
-
javax.sql.RowSet
-
var属性でイテレーション変数名を指定
-
first属性で表示開始行番号、rows属性で表示行数を指定
-
captionClass,columnClasses,footerClass,headerClass,rowClasses,styleClass:スタイル指定
-
行(列)のスタイルを複数指定すると、行(列)番号に応じて順にスタイルが適用される
Displaying Error Messages with the h:message and h:messages Tags
-
変換、バリデーションが失敗したときのメッセージを設定
-
コンバータやバリデータをコンポーネントに登録すると、エラーメッセージがコンポーネントにキューイングされる
-
そのメッセージを<h:message>や<h:messages>で表示する
-
<h:message>
-
特定の入力コンポーネントに対するエラーメッセージを設定
-
for属性で対象の入力コンポーネントを指定
-
メッセージ表示位置はタグの位置
-
style属性でテキストのスタイルを指定
-
<h:messages>
-
ページ全体のエラーメッセージを表示する
-
layout属性でメッセージの出力形式を指定 list | table
Creating Bookmarkable URLs with the h:button and h:link Tags
-
ナビゲーション結果情報とコンポーネントパラメータからハイパーリンクを生成
-
<h:link>,<h:button>
-
outcome属性で参照リソースを指定
-
<f:param>子要素でクエリパラメータを指定
UsingViewParameters to Configure Bookmarkable URLs
-
<f:metadata>の子要素として<f:viewparam>でURLのパラメータを設定する
-
コンポーネントのincludeViewParams属性をtrueに設定する
-
パラメータ値の設定順序
-
Component
-
Navigation-case parameters
-
View parameters
Resource RelocationUsing h:output Tags
-
JSFがリソース描画するページ上の位置を指定することができる
-
<h:outputScript> : スクリプトの描画
-
<h:outputStylesheet> : CSSの描画
-
name,target属性で描画位置を指定
-
target属性なしの場合は、<head>内に描画
-
コンポーネントに@ResourceDependencyアノテーションをつけてコンポーネントに対するリソースを指定できる
Using CoreTags
-
イベントハンドリング
f:actionListener
|
親コンポーネントにActionリスナを登録
|
f:phaseListener
|
ページにフェーズリスナを登録
|
f:setPropertyActionListener
|
フォームサブミット時に管理ビーンに値を設定するリスナを登録
|
f:valueChangeListener
|
親コンポーネントにValueChangeリスナを登録
|
-
データ変換
f:converter
|
親コンポーネントに任意のコンバータを登録
|
f:convertDateTime
|
親コンポーネントにDateTimeConverterを登録
|
f:convertNumber
|
親コンポーネントにNumberConverterを登録
|
-
Facet
f:facet
|
ネストされたコンポーネントを追加
|
f:metadata
|
親コンポーネントにfacetを登録
|
-
リスト項目
f:selectItem
|
リスト中の1項目
|
f:selectItems
|
リスト中の項目セット
|
-
バリデータ
f:validateDoubleRange
|
コンポーネントにDoubleRangeValidatorを登録
|
f:selectItems
|
コンポーネントにLengthValidatorを登録
|
f:validateLongRange
|
コンポーネントにLongRangeValidatorを登録
|
f:validator
|
コンポーネントにカスタムバリデータを登録
|
f:validateRegEx
|
コンポーネントにRegExValidatorを登録
|
f:validateBean
|
BeanValidatorにローカル値のバリデーションを委譲
|
f:validateRequired
|
必須チェック
|
-
その他
f:attribute
|
親コンポーネントに属性を追加
|
f:loadBundle
|
ResourceBundleを特定
|
f:param
|
MessageFormatにパラメータを代入し、URLにクエリパラメータを追加
|
f:ajax
|
Ajaxのアクションとコンポーネント(グループ)を紐づける
|
f:event
|
コンポーネントにComponentSystemEventListenerをインストール
|
最終更新:2012年08月21日 20:52