Struts 是一個流行的開放源代碼開發(fā)框架,它提供了一種便利的方式,可以用于將模塊化的應(yīng)用程序清楚地分解成邏輯、表示和數(shù)據(jù)。IBM WebSphere Portal 包含內(nèi)置的 Struts Portlet Framework,使得 Struts 能夠繼續(xù)普及到門戶應(yīng)用程序。本文將展示可以如何使用 Struts Portlet Framework 來遷移現(xiàn)有的 Struts 應(yīng)用程序并將其部署到部署到 WebSphere Portal 中。
Struts 是一個流行的開放源代碼開發(fā)框架,它提供了一種便利的方式,可以用于將模塊化的應(yīng)用程序清楚地分解成邏輯、表示和數(shù)據(jù)。IBM WebSphere Portal 包含內(nèi)置的 Struts Portlet Framework,使得 Struts 能夠繼續(xù)普及到門戶應(yīng)用程序。本文將展示可以如何使用 Struts Portlet Framework 來遷移現(xiàn)有的 Struts 應(yīng)用程序并將其部署到部署到 WebSphere Portal 中。
Struts是模型-視圖-控制器(Model-View-Controller,MVC)框架最著名的開放源代碼體現(xiàn)之一,它提供了一種便利的方式,可以用于將模塊化的應(yīng)用程序清楚地分成邏輯、表示和數(shù)據(jù)。JavaServer Pages(JSP)在 MVC 框架中通常是作為視圖(View),它根據(jù)業(yè)務(wù)邏輯和數(shù)據(jù)生成動態(tài)用戶界面(UI)。Struts非常流行,因為它能夠幫助開發(fā)人員有效地設(shè)計 Web應(yīng)用程序。
IBM? WebSphere? Portal 包含內(nèi)置的 Struts Portlet Framework,使Struts 能夠繼續(xù)普及到門戶應(yīng)用程序。可以通過使用 Struts Portlet Framework 來遷移現(xiàn)有的 Struts 應(yīng)用程序并將其部署到 WebSpherePortal 上。
IBM WebSphere Studio Application Developer(以下簡稱為 ApplicationDeveloper)有內(nèi)置的工具和運行時支持,可以用于開發(fā) Struts應(yīng)用程序并對其進(jìn)行單元測試。通過 ApplicationDeveloper 中的 WebSphere Portal Toolkit,也可以使用 WebSphereStudio 來開發(fā)門戶應(yīng)用程序并對其進(jìn)行單元測試。
本文將描述如何使用 WebSphereStudio 來將現(xiàn)有的 Struts應(yīng)用程序遷移到門戶應(yīng)用程序。本文假設(shè)您具備 Struts和 WebSphere Studio 中的 Struts工具的基礎(chǔ)知識。(要了解關(guān)于本主題的基本信息,請參閱 用WebSphere Studio V5 編寫一個簡單的 Struts 應(yīng)用程序。)
在本文中創(chuàng)建的門戶應(yīng)用程序是針對 WebSphere PortalV5。因此,需要如下軟件來完成本示例:
- WebSphere Studio Application Developer Version 5.01
- WebSphere Portal Toolkit Version 5 安裝有 WebSphere Portal V5 Unit Test Environment。
下面概括了安裝您所需軟件的步驟的順序:
- 安裝 WebSphere Studio Application Developer V5。
- 安裝 WebSphere Studio Application Developer 5.01 PTF。
- 將 WebSphere Application Server 5.01 PTF 安裝到 WebSphere Test Environment(要了解更多細(xì)節(jié),請參考
WPS_CDSets\cd0\PortalToolkit\InstallGuide\was_ptf1.htm
)。 - 安裝 WebSphere Application Server 5 Interim fixes(要了解更多細(xì)節(jié),請參考
WPS_CDSets\cd0\PortalToolkit\InstallGuide\was_ptf1.htm
)。 - 安裝 WebSphere Portal Toolkit V5。在安裝的過程中,請確保選擇了 WebSphere Portal V5 單元測試環(huán)境。系統(tǒng)將提示您使用 WebSphere Portal V5 CD 或安裝文件夾,所以請確保您手邊有 CD 或者在安裝前下載 CD 的鏡像。
創(chuàng)建并測試一個簡單的Struts 應(yīng)用程序
我們從 下載一個已創(chuàng)建好的樣本 Struts項目開始。如果您想要了解有關(guān)使用 WebSphere Studio V5創(chuàng)建簡單的 Struts 應(yīng)用程序的細(xì)節(jié),請參考文章 用 WebSphere Studio V5 編寫一個簡單的Struts 應(yīng)用程序,該文章同樣適用于 WebSphere Studio V5.01。它們之間的區(qū)別在于WebSphere Studio V5 支持 Struts 1.1 Beta 2,而 WebSphere Studio V5.01支持 Struts 1.1 Beta 3;在您計劃遷移到門戶應(yīng)用程序的 StrutsWeb 項目中,您將需要使用 Struts 1.1 Beta 3 框架。下載本文包含的
SimpleStruts.ear
,然后遵循如下步驟以測試該 SimpleStruts項目:- 將
SimpleStruts.ear
導(dǎo)入 Application Developer 工作區(qū)。您將創(chuàng)建兩個項目:SimpleStruts
和SimpleStrutsWeb
。 - 創(chuàng)建 WebSphere Test Environment V5 服務(wù)器實例和配置。
- 將
SimpleStruts
應(yīng)用程序添加到服務(wù)器配置中。 - 啟動服務(wù)器。
- 右鍵單擊 SimpleStrutsWeb\Web Content目錄下面的 submitpage.jsp并在上下文菜單中選擇 Run on Server。
圖 1. 一個簡單的 Struts 應(yīng)用程序 - 提交帶有一些信息的表單以查看結(jié)果。
- 測試過后,關(guān)閉服務(wù)器。
- 將
將此簡單的 Struts應(yīng)用程序遷移到一個 Portal 應(yīng)用程序中
- 使用 Portlet Struts Framework 替換 Apache Struts Framework;WebSphere Portal 為 Portal 環(huán)境重新編寫了 Apache Struts Framework 的實現(xiàn),因此您需要使用如下所示的相關(guān) JAR 文件和 TLD 文件:
- 將
WSAD_InstallDir\runtimes\portal_v50\dev\struts\StrutsPortlet\PortalStrutsBlank.war
導(dǎo)入到工作空間。使用PortletStrutsBlank
作為此 Web 項目的名稱并創(chuàng)建一個新的 Enterprise Application 項目來包括該 Web 項目。 - 將
PortletStrutsBlank\Web Content\WEB-INF\lib
中的所有 JAR 文件復(fù)制到SimpleStrutsWeb\Web Content\WEB-INF\lib
。 - 將
PortletStrutsBlank\Web Content\WEB-INF\tld
中的所有 TLD 文件復(fù)制到SimpleStrutsWeb\Web Content\WEB-INF
。 - 將
portlet.tld
導(dǎo)入到SimpleStrutsWeb\Web Content\WEB-INF\
。可以在WSAD_InstallDir\runtimes\portal_v50\shared\app\WEB-INF\tld
中找到此標(biāo)記庫文件。
- 將
- 修改 Web 部署描述符:
- 打開
SimpleStrutsWeb\Web Content\WEB-INF
下面的web.xml
。 - 單擊 Servlets選項卡,然后將 Servlet 的名稱從 action更改為 Struts。
- 將 Struts的 Servlet 類更改為 com.ibm.wps.portlets.struts.WpsStrutsPortlet。因為編輯器不認(rèn)為 WpsStrutsPortlet 是一個 Servlet,所以您可能難以從編輯器的 Servlets選項卡更改類的名稱。因此,您需要切換到編輯器的 Source選項卡并如下更改類名:
<servlet-name>Struts</servlet-name> <servlet-class>com.ibm.wps.portlets.struts.WpsStrutsPortlet</servlet-class>
- 將 Struts Servlet 的 URL 映射從
/*.do
更改為/Struts/*
。 - 確保初始化參數(shù) config 指向 Struts 配置文件,然后添加一個新的名為 struts-servlet-mapping 的初始化參數(shù):
參數(shù)名稱 參數(shù)值 config /WEB-INF/struts-config.xml
struts-servlet-mapping *.do
- 單擊 Pages選項卡,刪除 Welcome Pages列表中所有的項,然后將
submitpage.jsp
添加到 Welcome Pages 列表。 - 保存此 Web 部署描述符。
- 打開
- 修改 Struts 配置文件:將下列元素添加到
SimpleStrutsWeb\Web Content\WEB-INF
下的struts-config.xml
中的<struts-config>
元素:<controller processorClass="com.ibm.wps.portlets.struts.WpsRequestProcessor">
</controller> - 創(chuàng)建 Portlet 部署描述符:
- 將
portlet.xml
從PortalStrutsBlank\Web Content\WEB-INF
復(fù)制到SimpleStrutsWeb\Web Content\WEB-INF
。 - 在編輯器中打開
portlet.xml
。 - 從 Portlet Application項,將 Display name 更改為
Pizza Order Application
,然后將 UID 域更改為PizzaOrderApplicaton:1
,如圖 2 所示。您需要確保 UID 在部署到 WebSphere Portal 的所有門戶應(yīng)用程序中是惟一的。
圖 2. 修改 portlet.xml - 從 Portlet Application下的 Portlet_1項,將 Portlet 的 Display name 更改為
Pizza Order Portlet
。單擊 Browse按鈕,然后從彈出窗口中選擇 Struts作為 Portlet 的實現(xiàn),如圖 3 所示。
圖 3. 修改 portlet.xml - 從編輯器中選擇 Concrete Portlet Application項。將 Display name 更改為
Pizza Order Application
并將 UID 更改為PizzaOrderApplication:1.1
,如圖 4 所示。
圖 4. 修改 portlet.xml - 選擇 Concrete Portlet Application下的 Portlet_1項,然后將 Display name 更改為
Pizza Order Portlet
。將標(biāo)題(Title)、短標(biāo)題(Short title)和描述(Description)的值更改為Order a Pizza
。 - 保存此 Portlet 部署描述符。
- 將
- 修改 JSP 中的 HTML 標(biāo)記:Portlet 不能包含一般的 HTML 標(biāo)記,因此您需要對應(yīng)用程序中的所有 JSP 作出如下更改:
- 刪除
<!DOCTYPE>
標(biāo)記。 - 添加一個新的標(biāo)記庫:
<%@ taglib uri="/WEB-INF/struts-portal-html.tld" prefix="portalhtml" %>
- 將
<HEAD>
標(biāo)記更改為<portalhtml:head>
。 - 將
<BODY>
標(biāo)記更改為<portalhtml:body>
。
- 刪除
- 測試此 Portal 應(yīng)用程序:
- 創(chuàng)建 WebSphere Portal V5 Test Environment 服務(wù)器實例和配置。
- 將企業(yè)項目 SimpleStruts添加到服務(wù)器配置中。
- 啟動服務(wù)器。
- 右鍵單擊項目 SimpleStrutsWeb并從上下文菜單中選擇 Run on the server...。
- 此門戶應(yīng)用程序的首頁將如圖 5 所示。
圖 5. 在遷移后測試門戶應(yīng)用程序 - 提交帶有一些信息的表單以查看結(jié)果。(您可以從本文的 下載部分獲得此應(yīng)用程序的一個遷移后的副本
SimpleStrutsPortal.ear
。)
現(xiàn)在,由于 WebSphereStudio中包含了流線型的過程,所以通過遵循本文所提供的一般說明,將Struts 應(yīng)用程序遷移并部署到 WebSphere Portal會比從前容易得多。
名字 | 大小 | 下載方法 |
---|---|---|
strutsdownload.zip | 2.4 MB | HTTP |
![]() | ||||
![]() | 關(guān)于下載方法的信息 | ![]() | ![]() | Get Adobe? Reader? |
- 用 WebSphere Studio V5 編寫一個簡單的Struts 應(yīng)用程序
- Apache Struts Tiles 用戶指南
- 安裝 WebSphere Studio Application Developer 5.01 PTF
![]() | ||
![]() | Colin Yu 目前作為技術(shù)設(shè)計人員工作于 IBM Software Solutions Toronto 實驗室的 Business Scenario 開發(fā)組。Colin 于 1995 年獲得了工程學(xué)士學(xué)位,并且于 2000 年獲得了位于加拿大安大略省的 Waterloo 大學(xué)的應(yīng)用科學(xué)碩士學(xué)位。Colin 是 WebSphere Application Server 方面 IBM 認(rèn)證的企業(yè)開發(fā)人員和系統(tǒng)專家,他還是 WebSphere Studio Application Developer 和 VisualAge for Java 方面 IBM 認(rèn)證的解決方案開發(fā)人員。 |
原文出處
http://www-128.ibm.com/developerworks/cn/websphere/techjournal/0403_yu/0403_yu.html#main#main