ポストバック
用のフォームは,
<form>
要素に
id
属性を付け, 値を
form
または
Form
で終わるようにします.
action
属性および
method
属性,
name
属性はレンダリング時に付加されます (テンプレートに記述されていても無視されます).
レンダリング結果は次のようになります.
type
属性が
text
の
<input>
要素を記述して
id
属性を付け, その値と同じ名前のプロパティをページクラスに用意します.
レンダリング時,
<input>
要素の
value
属性にプロパティの値が設定されます. プロパティの値が
'<'
や
'>'
等を含む場合はエスケープされます.
ポストバック 時,ブラウザで入力された値がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
name
プロパティの値が
"Teeda"
の場合, レンダリング結果は次のようになります.
テキストフィールドに
"Seasar"
と入力してサブミットすると, ページクラスの
name
プロパティには
"Seasar"
が設定されます.
<input>
要素の
class
属性に
"T_currency"
を含めます.
テキストフィールドに入力できるのは数字と符号 (
'-'
),小数点 (
'.'
),カンマ (
','
) に限定されます. 数字の後に
't'
,
'm'
,
'b'
キーを押すと,入力済みの数がそれぞれ 1,000 倍,1,000,000 倍,
1,000,000,000 倍されます.
不正なキーが押されるとテキストフィールドはクリアされます.
フォーカスが外れると入力した数はカンマ区切りになります.
<input>
要素の
class
属性に
"T_date"
を含めます.
テキストフィールドに入力できるのは数字とスラッシュ (
'/'
) に限定されます.
年は二桁で入力することができます. フォーカスが外れると年は4桁に変換され, スラッシュ区切りになります.
type
属性が
password
の
<input>
要素を記述して
id
属性を付け, その値と同じ名前のプロパティをページクラスに用意します.
レンダリング時,
<input>
要素の
value
属性に値は設定されません.
ポストバック 時,ブラウザで入力された値がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
パスワードフィールドに
"1234"
と入力してサブミットすると, ページクラスの
pwd
プロパティには
"1234"
が設定されます.
type
属性が
password
の
<input>
要素に
te:redisplay
属性を付け, その値に
true
を指定します.
レンダリング時,
<input>
要素の
value
属性にプロパティの値が設定されます. プロパティの値が
'<'
や
'>'
等を含む場合はエスケープされます.
ポストバック 時,ブラウザで入力された値がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
pwd
プロパティの値が
"hoge"
の場合, レンダリング結果は次のようになります.
<textarea>
要素を記述して
id
属性を付け, その値と同じ名前のプロパティをページクラスに用意します.
レンダリング時,
<textarea>
要素の内容にはプロパティの値が設定されます. プロパティの値が
'<'
や
'>'
等を含む場合はエスケープされます.
ポストバック 時,ブラウザで入力された値がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
name
プロパティの値が
"Teeda"
の場合, レンダリング結果は次のようになります.
テキストエリアに
"Seasar"
と入力してサブミットすると, ページクラスの
name
プロパティには
"Seasar"
が設定されます.
静的なラジオボタンは, 一つ一つが独立したコンポーネントからなるラジオボタンです. それぞれのラジオボタンは同じ名前を持つラジオボタンとの間で排他的に選択されます.
静的なラジオボタンは,テンプレートHTMLに記述された
<input>
をそのままレンダリングでも使用するタイプのラジオボタンです.
<span>
要素または
<div>
要素に
id
属性を付け, その値と同じ名前のプロパティをページクラスに用意します.
このプロパティは選択された項目の値を保持します.
<span>
要素または
<div>
要素の内容に
type
属性が
radio
の
<input>
要素を記述して,その
name
属性に
<span>
要素または
<div>
要素の
id
属性と同じ値を指定します. 同じ
name
属性を持つ
<input type="radio">
要素を複数記述することができます.
ポストバック
時,ブラウザで選択されたラジオボタンの
value
属性の値がプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合はプロパティは設定されません.
2番目のラジオボタン(B)を選択してサブミットすると, ページクラスの
selected
プロパティには
"B"
が設定されます.
<span>
要素または
<div>
要素の
id
属性と同じ名前のプロパティに,チェックされた状態で表示したい
<input>
要素の
value
属性と同じ値を設定します.
レンダリング時,
input
要素の
value
属性の値が,
<span>
要素または
<div>
要素の
id
属性と同じ名前のプロパティの値と一致する
<input>
要素には,
checked
属性が付け加えられます.
selected
プロパティの値が
"A"
の場合, レンダリング結果は次のようになります.
「 ダイナミックプロパティ 」と組み合わせます.
type
属性が
radio
の
<input>
要素に
id
属性を付け, その値に
Value
を加えた名前のプロパティをページクラスに用意します.
このプロパティは項目の値を保持します.
レンダリング時,
input
要素の
value
属性の値は
id + Value
という名前のプロパティ値に置き換えられます.
code1Value
が
"t"
,
name1
が
"Teeda"
で,
code2Value
が
"s"
,
name2
が
"SAStruts"
の場合, レンダリング結果は次のようになります.
1番目のラジオボタン(Teeda)を選択してサブミットすると, ページクラスの
selected
プロパティには
"t"
が設定されます.
forEach と組み合わせます.
<span>
要素または
<div>
要素の内容に,forEach にマッピングされる (
id
属性が
Items
で終わる) 要素を記述します. その
id
属性と同じ値を持つプロパティをページクラスに用意します. このプロパティの型は配列または
java.util.List
に,その要素の型はDtoまたは
java.util.Map
にします.
type
属性が
radio
の
<input>
要素に
id
属性を付けます.
input
要素の
id + Value
という名前を持つDtoのプロパティまたは
Map
のキーを用意します.
Dtoのプロパティまたは
Map
のキーと同じ名前のプロパティをページクラスにも持たせます.
レンダリング時,
input
要素の
value
属性の値は
id + Value
という名前のプロパティ値に置き換えられます.
productItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
1番目のラジオボタン(Teeda)を選択してサブミットすると, ページクラスの
selected
プロパティには
"t"
が設定されます.
動的なラジオボタンは, 複数のラジオボタンの集まりによって構成されるコンポーネントです.
動的なラジオボタンでは,テンプレートHTMLに記述された
<input>
要素はレンダリングで使用されません.
<input>
要素はselectOneRadioによって動的に生成されます.
デフォルトでは,複数のラジオボタンが
<table>
要素を使って横にレイアウトされます.
<span>
要素に
id
属性を付けます. 要素の内容には,
type
属性が
radio
で,
<span>
要素の
id
属性と同じ
name
属性を持つ
<input>
要素を記述します. この
<input>
要素は実行時には捨てられます (ブラウザで直接プレビューする際のモックとして活用してください).
ページクラスに2つのプロパティを用意します. 一つめは
<span>
要素の
id
属性と同じ名前で, 配列型のプロパティです. このプロパティは選択された項目の値を保持します.
二つめは
<span>
要素の
id
属性の値に
Items
を加えた名前で, 型は次のいずれかです.
java.util.List
java.util.Map
配列または
List
型の場合は, その要素型はDtoまたは
java.util.Map
で,
label
および
value
というプロパティ (
Map
の場合はキー) でラジオボタンのラベルと値を保持します.
Map
の場合は,
label
=
value
というマッピングでラベルと値を保持します (順序を維持するには
java.util.LinkedHashMap
を使います).
レンダリング時,
<span>
要素の内容は
Items
プロパティの要素の数分の
<input>
要素に置き換えられます.
ポストバック
時,ブラウザで選択された項目の値が
<span>
要素の
id
属性と同じ名前のプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
最初のラジオボタンを選択してサブミットすると, ページクラスの
select
プロパティには,
"A"
が設定されます.
<span>
要素の
te:col
属性に 1 行あたりのチェックボックスの数を指定します.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
<span>
要素の
te:layout
属性に
pageDirection
を指定します (デフォルトは
lineDirection
です).
optionItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
<span>
要素の
te:layout
属性に
none
を指定します.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
ポストバック
時に, 選択された項目の値だけではなく, ラベルもプロパティで受け取るには,
<span>
要素よりも
前
に,
隠しフィールド
(
input
要素) を用意します.
input
要素の
id
属性は,
<span>
要素の
id
属性の値に
ItemsSave
を加えた名前を指定します.
ページクラスにラベルを受け取るプロパティを用意します. プロパティは
<span>
要素の
id
属性の値に
Label
を加えた名前で, 型は
String
とします.
ポストバック
時,ブラウザで選択された項目のラベルが
<span>
要素の
id
属性の値に
Label
を加えた名前のプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
最初のラジオボタンを選択してサブミットすると, ページクラスの
selectLabel
プロパティには,
"AAAA"
が設定されます.
単一項目のチェックボックスは, 一つのチェックボックスだけで構成されるコンポーネントです.
type
属性が
checkbox
の
<input>
要素を記述して
id
属性を付け, その値と同じ名前で型が
boolean
のプロパティをページクラスに用意します.
レンダリング時,
<input>
要素の
value
属性にプロパティの値が設定されます.
ポストバック 時,ブラウザで選択された状態がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
チェックボックスを選択してサブミットすると, ページクラスの
option
プロパティには
true
が設定されます.
<input>
要素の
id
属性と同じ名前のプロパティを
true
に設定します.
option
プロパティの値が
true
の場合, レンダリング結果は次のようになります.
チェックボックスの選択を解除してサブミットすると, ページクラスの
option
プロパティには
false
が設定されます.
forEach と組み合わせます.
forEach にマッピングされる (
id
属性が
Items
で終わる) 要素を記述します. その
id
属性と同じ値を持つプロパティをページクラスに用意します. このプロパティの型は配列または
java.util.List
に,その要素の型はDtoまたは
java.util.Map
にします. Dtoのプロパティまたは
Map
のキーと同じ名前のプロパティをページクラスにも持たせます.
type
属性が
checkbox
の
<input>
要素に
id
属性を付け, Dtoのプロパティまたは
Map
のキーと同じ名前を付けます.
レンダリング時,
input
要素の
value
属性の値は
id
属性の値と同じ名前のプロパティに置き換えられます.
サブミットされるフォームデータにチェックされなかった項目は含まれないため, 繰り返しの中にチェックボタンしか項目がない場合, 繰り返しの数を正確に判定できない場合があります. これを回避するには,繰り返しの中に隠し項目を含めるようにします.
optionItems
が2つの要素を持つ場合, レンダリング結果は次のようになります.
1番目のチェックボックス(Teeda)を選択してサブミットすると, ページクラスの
optionItems
の最初の要素の
option
プロパティには
true
が,2番目の要素の
option
プロパティには
false
が設定されます.
複数項目のチェックボックスは, 複数のチェックボックスの集まりによって構成されるコンポーネントです.
複数項目のチェックボックスでは,テンプレートHTMLに記述された
<input>
要素はレンダリングで使用されません.
<input>
要素はselectManyCheckboxによって動的に生成されます.
デフォルトでは,複数のチェックボックスが
<table>
要素を使って横にレイアウトされます.
<span>
要素に
id
属性を付けます. 要素の内容には,
type
属性が
checkbox
で,
<span>
要素の
id
属性と同じ
name
属性を持つ
<input>
要素を記述します. この
<input>
要素は実行時には捨てられます (ブラウザで直接プレビューする際のモックとして活用してください).
ページクラスに2つのプロパティを用意します. 一つめは
<span>
要素の
id
属性と同じ名前で, 配列型のプロパティです. このプロパティは選択された項目の値を保持します.
二つめは
<span>
要素の
id
属性の値に
Items
を加えた名前で, 型は次のいずれかです.
java.util.List
java.util.Map
配列または
List
型の場合は, その要素型はDtoまたは
java.util.Map
で,
label
および
value
というプロパティ (
Map
の場合はキー) でラジオボタンのラベルと値を保持します.
Map
の場合は,
label
=
value
というマッピングでラベルと値を保持します (順序を維持するには
java.util.LinkedHashMap
を使います).
レンダリング時,
<span>
要素の内容は
Items
プロパティの要素の数分の
<input>
要素に置き換えられます.
ポストバック
時,ブラウザで選択された項目の値が
<span>
要素の
id
属性と同じ名前のプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
optionItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
全てのチェックボックスを選択してサブミットすると, ページクラスの
option
プロパティには,
"A"
,
"B"
,
"C"
を要素とする配列が設定されます.
<input>
要素の
id
属性と同じ名前のプロパティに, 選択状態にしたい項目の値を要素とする配列を設定します.
option
プロパティに
"A"
と
"C"
を要素とする配列を設定すると, レンダリング結果は次のようになります.
<span>
要素の
te:col
属性に 1 行あたりのチェックボックスの数を指定します.
optionItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
<span>
要素の
te:layout
属性に
pageDirection
を指定します (デフォルトは
lineDirection
です).
optionItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
<span>
要素の
te:layout
属性に
none
を指定します.
optionItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
単一選択の選択リストでは,テンプレートHTMLに記述された
<option>
要素はレンダリングで使用されません.
<option>
要素はselectOneMenuによって動的に生成されます.
multiple
属性を指定しない
<select>
要素を記述して
id
属性を付けます.
<select>
要素の内容には
<option>
要素を記述することができます. この
<option>
要素は実行時には捨てられます (ブラウザで直接プレビューする際のモックとして活用してください).
ページクラスに2つのプロパティを用意します. 一つめは
<select>
要素の
id
属性の値と同じ名前のプロパティで, 選択された項目の値を保持します.
二つめは
<select>
の
id
属性の値に
Items
を加えた名前で, 型は次のいずれかです.
java.util.List
java.util.Map
配列または
List
型の場合は, その要素型はDtoまたは
java.util.Map
で,
label
および
value
というプロパティ (
Map
の場合はキー) でラジオボタンのラベルと値を保持します.
Map
の場合は,
label
=
value
というマッピングでラベルと値を保持します (順序を維持するには
java.util.LinkedHashMap
を使います).
レンダリング時,
<option>
要素の
value
属性に
value
プロパティまたは
Map
のキーが, 内容に
label
プロパティまたは
Map
の値が設定されます.
ポストバック
時,ブラウザで選択された
<option>
要素の
value
属性の値がプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
選択リストで
Teeda
を選択してサブミットすると, ページクラスの
select
プロパティには
"t"
が設定されます.
<select>
要素の
id
属性の値と同じ名前のプロパティに, 選択状態にしたい項目の値を設定します.
select
プロパティに
"t"
を設定すると, レンダリング結果は次のようになります.
<select>
要素の
id
属性の値と同じ名前のプロパティを必須項目にします.
どの項目も選択しないでサブミットすると, バリデーションでエラーとなります.
アプリケーション全体で「選択してください」が出力されないようにするには,
teedaCustomize.dicon
に次の定義を記述します.
ポストバック
時に, 選択された項目の値だけではなく, ラベルもプロパティで受け取るには,
<select>
要素よりも
前
に,
隠しフィールド
(
input
要素) を用意します.
input
要素の
id
属性は,
<select>
要素の
id
属性の値に
ItemsSave
を加えた名前を指定します.
ページクラスにラベルを受け取るプロパティを用意します. プロパティは
<select>
要素の
id
属性の値の値に
Label
を加えた名前で, 型は
String
とします.
ポストバック
時,ブラウザで選択された項目のラベルが
<select>
要素の
id
属性の値の値に
Label
を加えた名前のプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
選択リストで
Teeda
を選択してサブミットすると, ページクラスの
selectLabel
プロパティには,
"Teeda"
が設定されます.
複数選択の選択リストでは,テンプレートHTMLに記述された
<option>
要素はレンダリングで使用されません.
<option>
要素はselectManyListによって動的に生成されます.
multiple
属性を指定した
<select>
要素を記述して
id
属性を付けます.
<select>
要素の内容には
<option>
要素を記述することができます. この
<option>
要素は実行時には捨てられます (ブラウザで直接プレビューする際のモックとして活用してください).
ページクラスに2つのプロパティを用意します. 一つめは
<select>
要素の
id
属性の値と同じ名前で,配列型のプロパティです.このプロパティは選択された項目の値を保持します.
二つめは
<select>
の
id
属性の値に
Items
を加えた名前で, 型は次のいずれかです.
java.util.List
java.util.Map
配列または
List
型の場合は, その要素型はDtoまたは
java.util.Map
で,
label
および
value
というプロパティ (
Map
の場合はキー) でラジオボタンのラベルと値を保持します.
Map
の場合は,
label
=
value
というマッピングでラベルと値を保持します (順序を維持するには
java.util.LinkedHashMap
を使います).
レンダリング時,
<option>
要素の
value
属性に
value
プロパティまたは
Map
のキーが, 内容に
label
プロパティまたは
Map
の値が設定されます.
ポストバック
時,ブラウザで選択された
<option>
要素の
value
属性の値がプロパティに設定されます. ただし, 「
バリデーション
」でエラーが発生した場合は設定されません.
selectItems
が3つの要素を持つ場合, レンダリング結果は次のようになります.
選択リストで
Teeda
および
SAStruts
を選択してサブミットすると, ページクラスの
select
プロパティには
"t"
と
"s"
を要素とする配列が設定されます.
<select>
要素の
id
属性の値と同じ名前のプロパティに, 選択状態にしたい項目の値を要素とする配列または
List
を設定します.
select
プロパティに
"t"
と
"s"
を要素とする配列を設定すると, レンダリング結果は次のようになります.
<select>
要素の
id
属性の値と同じ名前のプロパティを必須項目にします.
どの項目も選択しないでサブミットすると, バリデーションでエラーとなります.
アプリケーション全体で「選択してください」が出力されないようにするには,
teedaCustomize.dicon
に次の定義を記述します.
form
要素に
enctype
属性を追加し,値に
multipart/form-data
を指定します.
type
属性が
file
の
<input>
要素を記述します.
<input>
要素の
id
属性と同じ名前で,
org.seasar.teeda.extension.util.UploadedFile
型のプロパティをページクラスに用意します.
org.seasar.teeda.extension.util.UploadedFile
の詳細や他に使えるプロパティの型,
web.xml
の設定等は「
ファイルアップロード
」を参照してください.
ポストバック 時,ブラウザからアップロードされたファイルがプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
ファイル名入力フィールドでファイル
foo.txt
を選択してサブミットすると, ページクラスの
textFile
プロパティには,
name
プロパティに
"textFile.txt"
が設定された
org.seasar.teeda.extension.util.UploadedFile
が設定されます.
type
属性が
hidden
の
<input>
要素を記述して
id
属性を付け, その値と同じ名前のプロパティをページクラスに用意します.
レンダリング時,
<input>
要素の
value
属性にプロパティの値が設定されます. プロパティの値が
'<'
や
'>'
等を含む場合はエスケープされます.
ポストバック 時,隠しフィールドの値がプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
name
プロパティの値が
"Teeda"
の場合, レンダリング結果は次のようになります.
フォームをサブミットすると, ページクラスの
name
プロパティには
"Teeda"
が設定されます.
<input>
要素の
id
属性を,保存するプロパティの名前 +
Save
にします.
レンダリング時,プロパティの値をシリアライズしたバイト列をBase64でエンコードした文字列が
<input>
要素の
value
属性に設定されます.
ポストバック 時,隠しフィールドの値がデコードおよびデシリアライズされてプロパティに設定されます. ただし, 「 バリデーション 」でエラーが発生した場合は設定されません.
type
属性が
submit
,
button
,
image
のいずれかの
<input>
要素を記述します.
<input>
要素に
id
属性を付け, その値を
do
で始めて, ページクラスに同じ名前のメソッドを用意します.
do~()
メソッドの詳細は 「
ライフサイクル
」-「
do~()メソッド
」を参照してください.
ポストバック
時, INVOKE_APPLICATIONフェーズで
do~()
メソッドが呼び出されます. ただし, 「
バリデーション
」でエラーが発生した場合は呼び出されません. INVOKE_APPLICATIONフェーズについては,「
ライフサイクル
」-「
JSFライフサイクルとの関係
」を参照してください.
フォームをサブミットすると, ページクラスの
doSend()
メソッドが呼び出されます.
<input>
要素の
id
属性およびページクラスのメソッドを
doOnce
で始めます.
id
属性が
doOnce
で始まるサブミットボタンを含むフォームにはトランザクショントークンが埋め込まれます.
ポストバック
時,
トランザクショントークンがチェックされ,二重サブミットを検出すると最初のサブミットに対する応答画面へリダイレクトするか,
エラー画面が表示されます.
<input>
要素の
id
属性を
doOnce
で始め,
te:renderJs
属性に
true
を指定します.
レンダリング時,二重サブミットを防止するJavaScriptを記述した
<script>
要素等が出力されます.
<input>
要素の
id
属性を
go
+
遷移先画面名
とします.
ポストバック 時, UPDATE_MODEL_VALUESフェーズの後に指定された画面に遷移します. ただし, 「 バリデーション 」でエラーが発生した場合は遷移しません. UPDATE_MODEL_VALUESフェーズについては,「 ライフサイクル 」-「 JSFライフサイクルとの関係 」を参照してください.
フォームをサブミットすると,
nextPage.html
に画面遷移します.
<input>
要素の
id
属性を
jump
+
遷移先画面名
とします.
ポストバック 時, APPLY_REQUEST_VALUESフェーズの後に指定された画面へ遷移します. バリデーションは行われません. APPLY_REQUEST_VALUESフェーズについては,「 ライフサイクル 」-「 JSFライフサイクルとの関係 」を参照してください.
フォームをサブミットすると, バリデーションを行わずに
nextPage.html
に画面遷移します.