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); }