Struts ポートレット・プロジェクトは、いくつかの相違点はありますが、 標準ポートレットおよび Struts プロジェクトと共通の特性を共有します。Struts ポートレット・プロジェクト構造および関連リソースは、WebSphere® Portal が提供する Struts Portlet Framework (SPF) サポートによって規定され、Rational® Developer に組み込まれています。
Struts ポートレット・プロジェクトは、「新規ポートレット・プロジェクト」ウィザードを使用して作成されます。 デフォルトの Struts タイプ・ポートレット、およびオプションとして Web ダイアグラム・ファイルが、プロジェクトの作成プロセスで追加されます。 このウィザードにより、Struts ポートレット構成ファイル、 および web.xml ファイルに対する必要なアップデートが自動的に生成され、 すべての SPF タグ・ライブラリーと JAR ファイルが、要求されているディレクトリー構造内のプロジェクトに追加されます。
リソース・タイプ | ファイル | ターゲット・ディレクトリー | 注記 |
---|---|---|---|
TLD | SPFLegacyBlank.war 内のすべての *.tld ファイル | WEB-INF | |
JAR | SPFLegacyBlank.war 内のすべての *.jar ファイル (Blank.jar を除く) | WEB-INF/lib | |
構成ファイル |
|
WEB-INF | Request Processor のクラスを定義する <controller> エレメントは、Struts 構成ファイル内に自動的に生成されます。 |
デプロイメント記述子 |
|
WEB-INF | 標準の web.xml ファイルが以下のように変更されます。
|
次のサンプルの構成とデプロイメント記述子ファイルの断片は、Struts ポートレット・プロジェクト内で使用される代表的なタグ付けを示しています。
<controller processorClass="com.ibm.wps.portlets.struts.WpsRequestProcessor"> </controller>
<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>
<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-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>