Checkboxコンポーネントは、checkboxの作成、If,Elseコンポーネントは
指定された値に応じて分岐処理を行うコンポーネントです。
今回は、ページ仕様ファイルに定義するのではなく、直接HTML側に
コンポーネント定義を行っています。
[HTMLテンプレート]
<span jwcid="$content$">
<span jwcid="@Shell" title="literal:2つ目のサンプル画面">
<span jwcid="@Body">
<!--
チェックボックスを表示する。
(Checkbox,If,Elseコンポーネントを使用。)
Checkboxコンポーネント
必要な属性値は、valueとなっておりbooleanの値を指定する.
Ifコンポーネント
必要な属性値は、conditionとなっておりbooleanの値を指定する。
Elseコンポーネント
必要な属性値は無く、直前のIfの結果がfalseの場合に評価される。
なお、今回はHTML側にて直接コンポーネント定義を行っているが
当然、pageファイルでも同じことができる。
-->
<br/>
<hr/>
<!--
下記のform001@Formのようにjwcidにてコンポーネント名の前に
@をつけて記述すると、テンプレートが表示された際に@よりも
前の部分がそのタグのname属性に指定されるようになる。
-->
<form jwcid="form001@Form" name="form_001" method="post" action="" id="form001">
<div id="checkbox_001" align="center">
<b>Checkbox,If,Elseコンポーネントを使用</b>
<br/>
出力:
<input jwcid="checkbox001@Checkbox" value="ognl:checkbox001" type="checkbox" name="checkbox_001" onchange="javascript: document.getElementById('form001').submit();"/>
チェックボックス001<br/>
チェックボックスの状態:
<font color="red" size="+2">
<span jwcid="@If" condition="ognl:checkbox001">ON</span>
<span jwcid="@Else">OFF</span>
</font>
<br/>
</div>
</form>
<hr/>
<br/>
</span>
</span>
</span>
[ページ仕様ファイル]
<?xml version="1.0" encoding="Windows-31J"?> <!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <page-specification class="gsf.samples.tapestry.ThirdSample"> </page-specification>
[ページコンポーネントクラス]
package gsf.samples.tapestry; import org.apache.tapestry.*; import org.apache.tapestry.html.*; public abstract class ThirdSample extends BasePage{ public abstract boolean getCheckbox001(); public abstract void setCheckbox001(boolean value); }