InsertTextコンポーネントは、改行付きの文字列を出力します。
[ページ仕様ファイル]
<page-specification class="gsf.samples.tapestry.Home"> <!-- InsertTextコンポーネント 改行付きの文字列の出力を担当する。 なお、文字列に改行コードが含まれている場合、 出力時には<br/>に置換されて出力される。 また、Insert, InsertTextコンポーネントに共通しているが、 <>&等のHTMLにおいてエスケープが必要な文字についても 出力時にエスケープして出力される。 --> <component id="insertText003" type="InsertText"> <binding name="value">ognl:largeStrings</binding> </component> </page-specification>
今回、ページコンポーネントクラスより、値を取得するように
設定しています。
[ページコンポーネントクラス]
// vim:set ts=4 sw=4 et ws ft=java fenc=cp932 ff=dos: package gsf.samples.tapestry; import java.util.*; import java.text.*; import org.apache.tapestry.html.*; /** * Homeページ用のページコンポーネントクラス.<br/> * <br/> * ページコンポーネントクラスは、org.apache.tapestry.html.BasePage<br/> * クラスを継承して、作成する。tapestryには、バイトコードを実行時に<br/> * 拡張するフレームワークが存在するので、ページコンポーネントクラスは<br/> * abstractで宣言してもよい。その際は、セッターゲッターをabstractで<br/> * 宣言すると実行時にtapestry側で実装を拡張してくれる。<br/> * * <pre> * (クラス宣言例) * public abstract class Home extends BasePage{ * } * * (メソッド宣言例) * public abstract String getName(); * public abstract void setName(String name); * </pre> */ public class Home extends BasePage{ private Date currentDate; private Format dateFormat; private String largeStrings; public Home(){ this.currentDate = new Date(); this.dateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); this.largeStrings = "改行付きの文字列<>&''[0]\n改行付きの文字列<>&''[1]\n改行付きの文字列<>&''[2]\n"; } /** * Get currentDate. * * @return currentDate as Date. */ public Date getCurrentDate(){ return this.currentDate; } /** * Get dateFormat. * * @return dateFormat as Format. */ public Format getDateFormat(){ return this.dateFormat; } /** * Get largeStrings. * * @return largeStrings as String. */ public String getLargeStrings(){ return this.largeStrings; } }
[テンプレートファイル]
<html jwcid="@Shell"> <body jwcid="@Body"> <!-- 改行付きの文字列を出力する。 (InsertTextコンポーネントを使用) --> <br/> <hr/> <div id="insert_text_003" align="center"> <b> InsertTextコンポーネントを使用して、改行付き文字列を出力 <br/> 表示元の値はページコンポーネントクラスから取得 </b> <br/> 出力された文字列: <span jwcid="insertText003"></span> </div> <hr/> <br/> </body> </html>
表示を表示すると以下のように出力されます。
出力された文字列: 改行付きの文字列<>&''[0] 改行付きの文字列<>&''[1] 改行付きの文字列<>&''[2]