Tiles

JSFはまだまだ?

JSFとStrutsとTilesと普通に動いてたんです。 でも、日本語が文字化けするんです。 なんだかエンコーディングがおかしいんです。 struts-facesのせいだ、って旦那がかなりいらついてます。 何でもCraigが9月の時点で"これからのStrutsアプリケーションにはJ…

ランタイムにダイナミックにページを選ぶ

controllerClassを使えば、ランタイムでダイナミックにTileを選ぶことができる。 例えばセッション内にある"user"beanの"type"という値によって違ったJSPページを呼び込む、というシナリオがあるとする。org.apache.struts.tiles.Controllerをインプリメント…

TilesとLookupDispatchActionで日本語のキーを使う

前に"LookupDispatchActionで日本語のkeyを使う時"と言うのを書いたが、Tilesを使ってアプリケーションを書いている場合、RequestProcessorではなくTilesRequestProcessorのサブクラスを作らなければならない。 import org.apache.struts.tiles.TilesRequest…

Tilesテンプレートを複数のモジュールで使う時のCSSファイルの設定

どのモジュールでTilesテンプレートを使ってもCSSファイルがあるパスが正しく書き換えられるようにする必要がある。 <html:rewrite page='/css/stylesheet.css'/>の代わりにrequest.getContextPath()を使おう。 <link rel="stylesheet" type="text/css" href="/css/stylesheet.css">または、CSSファイルをstruts-config.xmlのglobal-forwardsに定義しておく方法もある。 <global-forwards> </global-forwards></link></html:rewrite>

トップメニューによって変わるサイドメニュー

このタイトルじゃ何のことかわからないかもしれません…。 はてなのこのページで言うと、ヘッダーのすぐ下にHOMEとかStruts一覧とかのメニューをクリックすると、それぞれのサブメニューがサイドにでてくるって感じのサイト、あれのことです。 図を書けばよく…

putListでメニューの作成

menu.jspに一つずつリンクを足していくのって、めんどくさいです。 しかも、同じコードの繰り返しがたくさんできるので無駄も多いです。 Tileにはそんな無駄を解決するべくputListなるものが用意されています。 まず、ベースのdefinitionです: <put name="menu" value="site.menu.bar" /> leftMenuは</put>…

Tiles 101/201 by Patrick Peak[TheServerSide.com]

前半の101はTilesの基本ですが、後半の201ではTilesコントローラについて書かれています。 Actionの重複やAction chainingを減少させるにはもってこいです。 もう一度Tiles Advanced Featuresを読まなければ。

ignoreアトリビュート

ignoreアトリビュートがtrueの場合、アトリビュートが指定されていない場合でも無視されます。 これがfalseだと、Tilesフレームワークがエクセプションを投げ、ページがディスプレイされません。 example: <tiles:getAsString name="title" ignore="true" /> ...上の場合、titleが渡されていなくてもエラーに</tiles:getasstring>…

アトリビュートの受け渡し - シンプルstringの場合

でTileを挿入する時にパラメータを渡すことも可能です。 渡されたパラメータはTileスコープになります*1。 example: <tiles:getAsString name="title" ignore="true" /> ...上の例のようにして、ブラウザーのタイトルバーに表示されるtitleを、同時にページのヘッダー部分にも表示させることができます。 タグ</tiles:getasstring>…

Struts-Faces Integration Library, Update

JavaServer Facesの新しいベータリリースと動作するようにアップデートされたStruts-Facesインテグレーション・ライブラリのナイトリービルドがダウンロードできます。 http://cvs.apache.org/builds/jakarta-struts/nightly/struts-faces/ ソースコードはこ…

Integrating Struts,Tiles, and JavaServer Faces[IBM.com] 旦那は9月の時点ですでに読んでたらしいですが、私はこれから読みます。

Definitionの名前をStruts forwardに使う

Ted HustedさんのThe Struts Catalogにもあるように、MVC2アーキテクチャーでは全てのページがコントローラ(Strutsではアクションマッピング)を通過しなければなりません。スタティックのページでもコントロールは一旦アクションに渡され、、struts-config.x…

Definitionのエクステンド

前回書いたレイアウトとDefinitionを使って、新しいページを作ります。 ヘッダー、メニュー、フッターはそのままで、ページタイトルとbodyを変更するとします。 layout.MainLayout*1のdefinitionの後に続けて書きます。 <definition name="site.body.product" extends="layout.MainLayout"> →このdefinitionは"site.body.produc</definition>…

レイアウト(テンプレート)を作ろう。

Tileを組み合わせてこんな感じのレイアウトを作ります。 レイアウトができてしまえば、後はbody.jspを入れ換えるだけで新しいページが簡単に作成できます! そこがTilesのポイント → 繰り返し表示される部分(ヘッダー・メニュー・フッター)は一度きり。 しか…

ダイナミックテンプレートの用語

テンプレート? レイアウト? この2つの違いが分かりますか? Tilesタグを使って実際にテンプレートを組み立てていく前に、用語解説です。 Dynamic element[ダイナミック エレメント] JSP トランスレータによって認識されるJSPコードの部分。 アクション・ディ…

まずは設定から。

一応一通りTilesの勉強はして、実際に使ってはいるんですが、おさらいもかねて、まとめていこうと思います。ちなみに私は、Tomcat4.1とStruts1.1を使ってます。 まず必要なファイルは: struts.jar tiles.tld Strutsに必要な全ての commons-*.jar ファイル -…

Article

Tiles 101/201 by Patrick Peak

まずは設定から ダイナミックテンプレートの用語 レイアウト(テンプレート)を作ろう Definitionのエクステンド Definitionの名前をStruts forwardに使う ignoreアトリビュート アトリビュートの受け渡し - シンプルstringの場合 putListでメニューの作成 ト…