Struts ポートレットとプロジェクトの作成

Struts ポートレット・プロジェクトは、いくつかの相違点はありますが、 標準ポートレットおよび Struts プロジェクトと共通の特性を共有します。Struts ポートレット・プロジェクト構造および関連リソースは、WebSphere® Portal が提供する Struts Portlet Framework (SPF) サポートによって規定され、Rational® Developer に組み込まれています。

Struts ポートレット・プロジェクトは、「新規ポートレット・プロジェクト」ウィザードを使用して作成されます。 デフォルトの Struts タイプ・ポートレット、およびオプションとして Web ダイアグラム・ファイルが、プロジェクトの作成プロセスで追加されます。 このウィザードにより、Struts ポートレット構成ファイル、 および web.xml ファイルに対する必要なアップデートが自動的に生成され、 すべての SPF タグ・ライブラリーと JAR ファイルが、要求されているディレクトリー構造内のプロジェクトに追加されます。

Struts Portlet Framework によって定義される次のタイプのリソースが、プロジェクト内に組み込まれます。
リソース・タイプ ファイル ターゲット・ディレクトリー 注記
TLD SPFLegacyBlank.war 内のすべての *.tld ファイル WEB-INF  
JAR SPFLegacyBlank.war 内のすべての *.jar ファイル (Blank.jar を除く) WEB-INF/lib  
構成ファイル
  • struts-config.xml
  • struts-config-mode.xml (異なるモード/マークアップの場合)
  • portlet.xml
WEB-INF

Request Processor のクラスを定義する <controller> エレメントは、Struts 構成ファイル内に自動的に生成されます。

デプロイメント記述子
  • portlet.xml
  • web.xml
WEB-INF

標準の web.xml ファイルが以下のように変更されます。

  • サーブレット WpsStrutsPortlet が追加されます。
  • Web-appservlet、および servlet-mapping タグは、 他のポートレットと競合しないようにするために固有の ID をサフィックスとして付けた、ストリング値を持つ ID 属性を持ちます。
  • WpsStrutsPortlet は、プレフィックス・ベースのマッピングを使用して、 サーブレットの struts-servlet-mapping 初期設定パラメーターで定義されている拡張子ベースのサーブレット・マッピングを付けて構成されます。 拡張子ベースのマッピングは、Struts リンクの組み込み時に使用します。 この Struts ポートレット・プロジェクトを独立型アプリケーションとして実行する場合には、 拡張子ベースのサーブレット・マッピング (*.do) からプレフィックス・ベースのマッピング (例: /app/* などの URL パターン) にサーブレット・マッピング・エントリーを変更します。
    注: Web プロジェクトとポートレット・アプリケーションには、 同一の構成を使用できません。
  • 拡張子ベースのマッピングは、必須で、WpsStrutsPortlet の初期パラメーターで定義されています (パラメーター struts-servlet-mapping)。
  • Struts ポートレット・タグ・ライブラリーの定義が使用されます。
  • ポートレット・モード構成情報は、portlet.xml に組み込まれています。(SPF の場合) モードおよびマークアップは Struts モジュールとして扱われるため、これらのモジュールは、WpsStrutsPortlet の初期パラメーターの一部としても定義されます。
  • Struts モードのためのようこそファイル・リストのサポートが提供されています。
  • Struts ポートレット関連の init-param 値が提供されています。

次のサンプルの構成とデプロイメント記述子ファイルの断片は、Struts ポートレット・プロジェクト内で使用される代表的なタグ付けを示しています。

struts-config.xml
すべての Struts 構成ファイルに次のコントローラー・セクションが追加されます。
<controller processorClass="com.ibm.wps.portlets.struts.WpsRequestProcessor">
</controller>
web.xml
これは、web.xml に追加されたサンプルの Struts ポートレット・サーブレットを示します。(太字は Struts ポートレット固有の値。)
<servlet id="Struts_Unique_Servlet_Name">
     <servlet-name>Struts</servlet-name>
     <display-name>Struts Portlet</display-name>
     <servlet-class>com.ibm.wps.portlets.struts.WpsStrutsPortlet</servlet-class>

   <!-- Struts configuration -->
     <init-param>
       <param-name>config</param-name>
       <param-value>/WEB-INF/struts-config.xml</param-value>
     </init-param>
     <init-param>
       <param-name>struts-servlet-mapping</param-name>
       <param-value>*.do</param-value>
     </init-param> 
	 <!-- end of Struts configuration -->
</servlet>
注: 前述の config パラメーターは、Struts 構成ファイルおよびモジュールを定義する標準的な方法です。
これは、Struts ポートレット・サーブレットのサーブレット・マッピングの例です。
<servlet-mapping id="Struts_Unique_ServletMapping">
      <servlet-name>Struts</servlet-name>
      <url-pattern>/Struts/*</url-pattern>
</servlet-mapping>
これは、web.xml に追加される追加のタグ・ライブラリーの例です。
<taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
portlet.xml
これは、portlet.xml に定義されたアブストラクト・ポートレットの例です。
<portlet-app uid="A_Unique_ID:1" major-version="1" minor-version="0">
	<portlet-app-name>Struts Portlet Application</portlet-app-name>
	<portlet id="Portlet_1" 
href="WEB-INF/web.xml#Struts_Unique_Servlet_Name"
major-version="1" minor-version="0">
		<portlet-name>Struts Portlet</portlet-name>
		<cache>
			<expires>0</expires>
			<shared>NO</shared>
		</cache>
		<allows>
			<maximized/>
			<minimized/>
		</allows>
            <supports>
               <markup name="html">
                  <view/>
               </markup>
            </supports>
	</portlet>
</portlet-app>
これは、portlet.xml に定義されたコンクリート・ポートレットの例です。
<concrete-portlet-app uid="A_Unique_ID:1.1">
	<portlet-app-name>Struts Blank Application</portlet-app-name>
	<concrete-portlet href="#Portlet_1">
		<portlet-name>Struts Portlet</portlet-name>
		<default-locale>en</default-locale>
		<language locale="en">
			<title>Struts Portlet</title>
			<title-short>Struts Portlet</title-short>
			<description>Struts Portlet</description>
			<keywords>WPS, Struts</keywords>
		</language>
        <config-param>
           <param-name>FilterChain</param-name>
           <param-value>StrutsTranscoding</param-value>
        </config-param>
        <!-- any additional Struts related config-param values added here -->
	</concrete-portlet>
</concrete-portlet-app>
注: <config-param> エレメントは、WebSphere Portal v5.1 では使用されません。
関連概念
Struts ポートレット・アプリケーション
Struts Portlet Framework
ポートレット・デプロイメント記述子の処理
Struts ベースの Web アプリケーション - 概要
アプリケーション開発用の Struts ツール
関連タスク
Struts ポートレットの作成
Struts ポートレット JSP ファイルの作成
Struts を使用した適切な設計の Web アプリケーションの作成
関連資料
Struts 1.1 タグ・ライブラリー・クラスと SPF タグ・ライブラリー・クラスの相違点

(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005