いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

tapestry

Tapestry奮闘記-0028 (パスワードフィールドの利用)

ものすごく久しぶりのTapestry記事ですw単にメモ。Tapestryでパスワードフィールドを利用する場合、TextFieldコンポーネントを使用します。 でも、そのままだと入力が丸見えでパスワードフィールドになりません。 パスワードフィールドにするには、pageファ…

Tapestry奮闘記-0027 (OGNLのリソース)

Tapestryでは、ページファイルなどの値指定にOGNLが使用できます。 OGNLでは、単純にobj.getValue()をobj.valueと記述できるだけでなく 値の評価やオブジェクトの生成もできます。[例] Ifコンポーネントのcondition属性に指定するboolean値を Java側でセット…

Tapestry奮闘記-0026 (PropertySelectionコンポーネント)

PropertySelectionコンポーネントもSelect,Optionと同じようにドロップダウンリストを レンダリングします。違いは、こちらは内部でorg.apache.tapestry.form.IPropertySelectionModelを 持ち、それを利用してレンダリングを行います。IPropertySelectionMod…

Tapestry奮闘記-0025 (Select, Optionコンポーネント)

Tapestyにて、コンボボックス(ドロップダウンリスト)を表示するには、 大きく分けて2通りのやり方があります。 Selectコンポーネントを使用 PropertySelection(MultiplePropertySelection)コンポーネントを使用 後、自前でコンポーネントを作成してレンダ…

Tapestry奮闘記-0024 (文字化け対応)

アプリケーション仕様ファイルにて、プロパティ値 org.apache.tapestry.output-encoding org.apache.tapestry.template-encoding をともに、Shift_JISにしていたのですがこれでは、"〜"などが 文字化けしてしまいます。(Tapestry4.x系では、meta要素になりま…

Tapestry奮闘記-0023 (1回目〜22回目まで)

結構、たまってきてので各記事へのドアを作成。 Tapestry奮闘記-0001 http://d.hatena.ne.jp/gsf_zero1/20060613/1150860836 Tapestry奮闘記-0002 http://d.hatena.ne.jp/gsf_zero1/20060619/1150860709 Tapestry4.0でServletContextへのアクセス方法 http:/…

Tapestry奮闘記-0022 (Friendly URLsの設定)

Friendly URLsとは、TapestryのURL表記をフレンドリーなものにする設定のことです。 Tapestryのデフォルトでは、 http://xxxx/xxx/app?page=Home&service=page という風になります。これでは、簡単に推測してアタックできます。 これを http://xxxx/xxx/Home…

Tapestry奮闘記-0021 (リダイレクトフィルターの設定)

Tapestryでは、通常, /app にサーブレットをマッピングしますが、そのままだと、 http://xxxxx/xxx/ とappをつけずにアクセスした際に、エラーになっていまいます。 なので、上記のURLでアクセスされた際にもちゃんと最初のページが 表示されるようにリダイ…

Tapestry奮闘記-0020 (独自のエラーページの作成)

Tapestryにて、存在しないページ名などを指定された際に、デフォルトだと Tapestryのエラー画面が表示されます。これを独自のエラーページを表示するようにするには、 以下のステップを行います。 エラーページのHTMLテンプレートファイルを作成 エラーペー…

Tapestry-JSCookMenu

こんなのあるんですね〜今日しりました。 http://tapestry-jsmenu.sourceforge.net/index.html今度つかってみます。

Tapestry4.1リリース

まだ、unstable扱いみたいですが、4.1がリリースされてます。 http://tapestry.apache.org/tapestry4.1/今回の目玉は有名なAjaxライブラリであるDojoがバンドルされているという 点でしょう。それに伴い、 AutoCompleteField DropdownDatePicker DropdownTim…

Tapestry奮闘記-0019 (セッションオブジェクトの定義)

Tapestryにて、セッションオブジェクト(Stateというらしいです。)を定義するには、 HiveMind側の設定が必要になります。Tapestry3の時は、Visitと呼んでいたみたいです。やり方は、普通にセッションオブジェクトをまず作成します。 public class MySessionO…

Tapestry奮闘記-0018 (独自コンポーネントの作成-02)

今回は、BaseComponentを継承してコンポーネントを作成してみます。 AbstractComponentとBaseComponentの違いは、昨日の日記を参照してください。 http://d.hatena.ne.jp/gsf_zero1/20060726/1153879962作成方法は、基本的に同じです。 違いは、テンプレート…

Tapestry奮闘記-0017 (独自コンポーネントの作成-01)

Tapestryでは、ユーザが独自のコンポーネントを作成できます。 作成した独自コンポーネントは、他のビルドインコンポーネントと 同じく使用できるようになります。コンポーネントの作成には、大きく分けて2種類の作成方法が あります。 org.apache.tapestry.…

Tapestry奮闘記-0016 (サーバー情報の取得)

Tapestryでは、Servletなど低レベルの情報へのアクセスが隠蔽されています。 そんな中で、サーバーのschemeやヘッダーなどの情報が必要な場合があります。 最初、ServletContextがあったHiveMindレジストリとかから取得しようとしてたのですが、 よく探して…

Tapestry奮闘記-0015 (booleanの扱い)

Tapestryの設定ファイル(page/application/library/component)で TYPEがbooleanとドキュメントに記述されているものについては、ドキュメントに よると以下のリストから指定する必要があるみたいです。 trueを表す場合 true yes on 1 t y aye falseを表す場…

Tapestry@JavaForge

Tapestryの別プロジェクトみたいな感じです。 Springとの連携モジュールやFlashとの連携モジュールなど があります。http://howardlewisship.com/tapestry-javaforge/

Tapestry奮闘記-0014 (Tapestryのソースビルド)

Tapestryをソースビルドするには、以下のものが必要になります。 Tapestry本体 HiveMind 1.1.1(Tapestry4.0にはHiveMind1.1.1が対応) Apache Forrest 0.7(0.8-devでも可能なはず) 以下にビルドまでの手順を記述します。 (1) Tapestry本体を適当な場所に展開…

[java][tapestry] Tapestry奮闘記-0013 (Checkboxのグループ化)

今回は、チェックボックスのグループ化に Tapestryに付属しているContributeコンポーネントライブラリを使用します。チェックボックスのグループ化に使用するコンポーネントは、 contrib:CheckboxGroup contrib:ControlCheckbox contrib:ControlledCheckbox …

Tapestry奮闘記-0013 (追加コンポーネントを使用するには)

Tapestryにて、ContributeライブラリやTacosとか独自のコンポーネントライブラリを 使用するには、アプリケーション仕様ファイルに以下のように記述します。

Tapestry奮闘記-0012 (Forコンポーネント(2))

今度は、ForコンポーネントをForm内で使用してみます。 ドキュメントを見るとForコンポーネントはForm内に配置すると 自動的にhiddenタグでリストの値を残すようです。今回は、新旧の値を表示し、新しい値を入力されたら元の 値を更新するサンプルを作成しま…

Tapestry奮闘記-0011 (Forコンポーネント(1))

Forコンポーネントはループをしながら表示を行うためのコンポーネントです。 ループ元(ソースオブジェクト)には、コレクションやイテレータ、配列などが 指定できます。今回は、Form外でまずForコンポーネントを使用してデータを 表示してみます。[HTMLテン…

Tapestry奮闘記-0010 (Checkbox, If, Elseコンポーネント)

Checkboxコンポーネントは、checkboxの作成、If,Elseコンポーネントは 指定された値に応じて分岐処理を行うコンポーネントです。今回は、ページ仕様ファイルに定義するのではなく、直接HTML側に コンポーネント定義を行っています。[HTMLテンプレート] <span jwcid="$content$"> <span jwcid="@Shell" title="literal:2つ目のサンプル画面"> <span jwcid="@Body"> </span></span></span>

Tapestry奮闘記-0009 (Radio, RadioGroupコンポーネント)

Radio, RadioGroupコンポーネントは、文字通りラジオボタンを作成する コンポーネントです。RadioGroupによって複数のラジオボタンがグループ化されます。今回は、ページ仕様ファイルに定義するのではなく、直接HTML側に コンポーネント定義を行っています。…

Javaref.com

Howard Lewis Ship(TapestryとHiveMindの作者. HLSと略されている事多し)のブログに書いてありました。 http://howardlewisship.com/blog/2006/06/ajaxified-javadoc-with-tapestry.html#linksオープンソースのライブラリのjavadocを一点にあつめてブラウザ…

Tapestry奮闘記-0008 (FormコンポーネントとSubmitコンポーネントとTextFieldコンポーネント)

FormコンポーネントはFormタグの生成を担当します。また、Submitコンポーネントは サブミットボタンの生成を担当します。TextFieldコンポーネントは文字通りテキストフィールド の生成を担当します。 今回は、フォームを使用してよくある足し算フォームを作…

Tapestry奮闘記-0007 (PageLinkコンポーネント)

PageLinkコンポーネントは文字通りページへのリンクを生成します。[ページ仕様ファイル(Home.page)] <page-specification class="gsf.samples.tapestry.Home"> <component id="pageLink001" type="PageLink"> </component></page-specification>

Tapestry奮闘記-0006 (InsertTextコンポーネント)

InsertTextコンポーネントは、改行付きの文字列を出力します。[ページ仕様ファイル] <page-specification class="gsf.samples.tapestry.Home"> </page-specification>

Tapestry奮闘記-0005 (Insertコンポーネント2)

Insertコンポーネントは、表示の際のフォーマッターを指定できるように なっています。[ページ仕様ファイル] <page-specification class="gsf.samples.tapestry.Home"> <component id="insertText002" type="Insert"> </component></page-specification>

Tapestry奮闘記-0004 (Insertコンポーネント)

Insertコンポーネントは、文字列を出力するコンポーネントです。基本的な使用方法は、以下のようにします。[ページ仕様] <page-specification class="org.apache.tapestry.html.BasePage"> <component id="insertText001" type="Insert"> <binding name="value">ognl:new java…</binding></component></page-specification>