MAP | PageMixer ドキュメント > チュートリアル > Struts 環境における利用 |
このチュートリアルの目的は、 Struts との連携における PageMixer 既定義クラスの利用方法の習得です。
このチュートリアルではこれを、 Struts における JSP ファイルから、 PageMixer を用いた Servlet への移行事例を用いて説明します。
PageMixer をご存知無い方は、 "PageMixer の利用" を先にご覧下さい。
このチュートリアルのソースおよび設定ファイルは、
配布物における
"src/demo/struts/src
" および
"src/demo/struts/war
" 配下にあります。
注意: 本チュートリアルで示したクラス図およびサンプルソースは、 配布物との厳密な一致よりも、 説明の簡便さを優先しました。
チュートリアルでの記述と配布物の違いに、 混乱しないことを願います。
備考: 本チュートリアルは、 ページのコンパクトさよりも、 1ページでの情報一覧性を優先させるために、 大きな HTML ページから構成されています。
大きなページとそうでないページのどちらがお好きですか?
本チュートリアルの各節において共通の事柄がいくつかあります。
Struts と JSP の組み合わせにおけるメッセージの国際化(I18N)
および地域化(L10N)には、
"bean:message
" TagLib が利用されます。
一方で、
PageMixer フレームワークにおける I18N/L10N は、
メッセージ単位ではなくページ単位で行われます。
詳細は、 "locale に応じたページ描画" をご覧ください。
利便性の点から、
本チュートリアルで説明されているフィルタのほぼ全てが、
3.1 版以降の PageMixer フレームワークによって
"StdTailFilter"
の一部として提供されていますので、
各節において例示しているようなコードは、
配布物中の "src/demo/struts/src
" 配下には存在しません。
それに加えて、
StdTailFilter
は
PageMixer/Struts 連携のための
*PageServlet
群によって自動的に利用されるため、
配備識別子(web.xml
)において
StdTailFilter
利用のために何かを記述する必要はありません。
詳細は
StrutsFilterFactory
を参照してください。
HTML ページで指定された資源の位置(location)は、 以下のように取り扱われます。
位置の冒頭にスラッシュ("/")が含まれない場合です。
このような記述をする場合、 要求された URI との相対性を実行前に決定できないため、 例えば、 404(Not Found) エラー用のテンプレート HTML にトップページへのリンクを含めることは出来ません。
base
URI 相対指定:位置の冒頭にスラッシュ("/")が含まれず、
且つ HTML ページが base
タグを持つ場合です。
このケースでの問題は
base
が要求 URI と同じ値を持つ場合、
"要求 URI 相対" と同じであり、
大抵はそうであるように見受けられます。
この問題は、
base
にコンテキストルートパスをはめ込むことで解決可能です。
位置の冒頭にスラッシュ("/")が含まる場合です。
このような記述をする場合、 配備の文脈に依存するようになるため、 ウェブアプリケーションは可搬性の無いものになります。
Struts 連携の際に PageMixer フレームワークは、
token 列中に現れる base
HTML タグの href
属性に、
Servlet コンテキストのルート位置をはめ込みます。
これにより、
Struts Action
のものを除いた、
アプリケーションのローカル資源の位置を、
要求 URI 相対ではなく Servlet コンテキストルート相対で指定することができます。
但し、Struts Action
の位置は、
設定ファイル(群)において指定されたものと厳密に一致しなければなりません。
注意:
PageMixer フレームワークは、
HTML ページへ自動的に base
タグを埋め込むことはしませんので、
明示的に記述する必要があります。
十分なドキュメント化がされていない事柄:
"ActionForm
" に対応するフォームに
"cancel" を置く場合、
正しい挙動を得るためには、
それ("input
" タグ)の
"name
" 属性値として、
"org.apache.struts.taglib.html.CANCEL
" 値
( "org.apache.struts.taglib.html.Constants
"
クラスにおいて "CANCEL_PROPERTY" として定義されています)
を指定しなければなりません。
言い換えるなら、
Struts の
"CancelTag
"("html:cancel
")
TagLib を使用している JSP を変換したい場合、
対応する "input
" タグの
"name
" 属性値として、
"org.apache.struts.taglib.html.CANCEL
"
を指定しなければなりません。
表題 | 概要 |
---|---|
移行の概要 |
Struts の struts-mailreader における JSP ファイルから、 PageMixer を用いた Servlet への移行に関する概要。 |
URI のはめ込み | 配置された " |
エラー情報の取り扱い | Struts のエラー情報の取り扱い。 |
Bean のはめ込み | Bean のフィールド値のはめ込み。 |
Bean 値による刈り込み | Bean のフィールド値に応じた HTML ページの刈り込み。 |
反復 | Bean のフィールド値に応じた HTML ページの一部の反復。 |
複雑なフィルタリング | より複雑なフィルタの説明。 |
Servlet の設定 | JSP を置き換える Servlet の設定。 |
Struts の設定 | Struts の設定。 |
MAP | PageMixer ドキュメント > チュートリアル > Struts 環境における利用 |