国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用 Struts portlet 實現頁面導航

2019-11-18 12:55:44
字體:
來源:轉載
供稿:網友

  引言
  Struts 是一個很受歡迎的開放源代碼平臺基礎,它是為了使復雜的 Web 應用程序的創建和維護更加輕易而設計的。Struts 框架支持模型-視圖-控制器(Model-View-Controller,MVC)模型,并且提出了許多重要的應用程序設計和實現需要注重的事項。為了能夠在門戶應用程序中實現頁面導航,WebSphere® Portal V5 提供了一些標記,在開發典型 portlet 和 Struts portlet 時可將這些標記用于 javaServer Pages(jsp)。本文重點討論 Struts 框架創建多模塊的能力,并通過一個樣本 Struts portlet 應用程序為您介紹如何采用 JSP 實現頁面導航方法。
  
  我們將關注以下兩種互補的方法:
  
  如何使用在 WebSphere Portal 中可用的某一 JSP 標記來從 JSP 實現頁面導航
  我們將會看到一個樣本應用程序,包括開發環境和門戶資源的屏幕快照,以及頁面導航方法的代碼樣本。
  如何使用 Struts portlet 框架中內置的多模塊支持來組織 Web 導航方案
  我們將會看到一些代碼樣本,它們闡述了如何使用頁面導航特征來執行在門戶環境中轉換的多個 Struts 模塊。
  
  本文假定您已基本了解 Struts 應用程序,包括如何在 WebSphere Studio application Developer 中創建 Struts 應用程序、如何將 Struts 作為 portlet 進行部署,同時也了解 WebSphere Portal 中的門戶資源。(要獲得這些方面的更多信息,請參見參考資料。)
  
  在開發和部署我們的樣本應用程序時用到了以下產品:
  
  WebSphere Portal V5.x
  WebSphere Application Server v5.x
  支持 Struts Version 1.1 的 WebSphere Studio Application Developer v5.0.1 (下面稱為 Application Developer)。
  
  本文所講解的用于實現頁面導航的開發任務可同時用于標準 portlet 和 Struts portlet。
  
  應用程序概述
  在樣本應用程序中,我們將會使用位于三個不同頁面的三個 portlet。當用戶選擇其中某一 portlet 中的鏈接時,該用戶會被定向到另一個頁面,其中駐留著另一個 portlet。在整個文章中我們開發和提到的示例都會利用多 Struts 模塊將 WebSphere Portal 頁面導航標記并入門戶環境中每個模塊本身的 JSP 文件中。圖 1 概括性地展示了樣本應用程序將如何工作;為了把重點放在理解這些方法上,我們特意簡化了樣本應用程序。在本文的后面我們將會提供給用程序的細節。
  
  
圖 1. 樣本應用程序的高級視圖

  
 使用 Struts portlet 實現頁面導航(圖一)

  構建導航結構
  WebSphere Portal 提供了自己的 JSP 標記來供 portlet JSP 使用。其中的一個標記,<WPS:URLGeneration attribute="value"/>,是用于創建到門戶任何地方的頁面鏈接的。我們使用該標記中一個屬性,contentNode="idname",來創建到不同頁面的 URL,以便構建導航結構。該屬性利用一個惟一的標識符(內容節點的名稱)來指定可以從中找到該 portlet 的頁面。(關于這一標記的更多信息請參見參考資料。)
  
  在 WebSphere Portal 中選擇 Administration => Portal Settings => Custom Unique Names。我們使用 Custom Unique Names 治理 portlet 來獲取為 contentNode 屬性指定的門戶資源的惟一標識符。治理員可以使用 Custom Unique Names portlet 來查看惟一標識符并為門戶資源分配(讓人易讀的)自定義名稱。圖 2 顯示了這些已配置的樣本頁面的惟一標識符和自定義名稱:
  
  Struts_Test
  Struts_Receiver
  Struts_Receiver_2
  
  
圖 2. Custom Unique Names portlet

  
 使用 Struts portlet 實現頁面導航(圖二)

  在這個示例中,WebSphere Portal 分配給這些頁面的惟一標識符分別為 6_0_LT、6_0_P1 和 6_0_ip。(您的值可能會有所不同。)在駐留 WebSphere Portal 的另一臺機器上也創建了同樣的門戶資源 Struts_Test、Struts_Receiver 和 Struts_Receiver_2 portlet 頁面。為了閱讀和工作的方便,我們也為這些樣本頁面配置自定義名稱,并在 JSP 文件中使用這些自定義名稱(而不是惟一標記符)。
  
  在 <wps:URLGeneration attribute="value"/> portlet JSP 標記主體中,可以使用 <% wpsURL %> 腳本變量將 URL 直接寫入輸出流。在這個示例中,我們使用以下 JSP 代碼來創建從某一 JSP 頁面到 Struts Receiver 頁面的鏈接:
  
  <wps:urlGeneration contentNode="Struts_Receiver_Page">
     <A HREF="<%wpsURL.write(out);%>"style="text-decoration:none" >
     Any text</a>
  </wps:urlGeneration>
  
  <wps:URLGeneration attribute="value"/> portlet JSP 標記屬于 engine.tld 標記庫,這一標記庫是由門戶服務器引擎使用的。為了讓該門戶 JSP 標記可用于我們的 JSP 中,我們在 JSP 頁面的最開始位置添加標記庫指示 taglib。如以下代碼所示,通過前綴 wps,我們樣本中所有的 engine.tld 標記現在就都可用了:
  
  <%@ taglib uri="/WEB-INF/tld/engine.tld" prefix="wps" %>
  
  樣本頁面和 portlet 配置
  該樣本應用程序的頁面導航條包括三個 portlet(這里提供的長名稱有助于強調頁面導航流程):
  
  Overview Struts Portlet:
  顯示了兩個用于將用戶請示定向到包含電話號碼或地址信息的頁面上的鏈接,它位于 Struts_Test 頁面(自定義名稱:Struts_Test_Page),如圖 3 所示:
  
圖 3. Struts_Test 頁面中的 Overview Struts Portlet

  
 使用 Struts portlet 實現頁面導航(圖三)

  Receive Phone Numbers Request Struts Portlet:
  顯示用戶的電話號碼,位于 Struts_Receiver_2 頁面(自定義名稱:Struts_Receiver_2_Page),如圖 4 所示:
  
圖 4. Struts_Receiver_2 頁面中的 Receive Phone Numbers Request Struts Portlet

  
 使用 Struts portlet 實現頁面導航(圖四)

  Receive Address Request Struts Portlet:
  顯示用戶地址信息,位于頁面(自定義名稱:Struts_Receiver_Page),如圖 5 所示:
  
圖 5. Struts_Receiver 頁面中的 Receive Address Request Struts Portlet

  
 使用 Struts portlet 實現頁面導航(圖五)

  請記住,到目前為止所描述的全部任務均可用于常規 portlet 或 Struts portlet 開發。接下來我們將使用多 Struts 模塊中的門戶 JSP 標記來實現頁面導航。
  
  在 Struts 中使用多模塊支持
  Struts Version 1.1 可以讓我們將單個 Struts 應用程序拆分為多個模塊,每個模塊都有自己的操作、JSP 頁面和 Struts 配置文件(圖 6)。在 Struts 應用程序中實現多 Struts 模塊需要以下幾個步驟:
  
  創建獨立的 Struts 配置文件以及每個應用程序模塊的 Struts 操作和 JSPs。
  配置 Web 部署描述符(web.xml)。
  從一個模塊轉換到另一個模塊。
  
  雖然 Struts 應用程序很輕易應用,但要想在門戶環境中運行 Struts 應用程序的話,您還需要執行其他的步驟。(參見參考資料)。
  
  
圖 6. Struts 應用程序中的多模塊支持

  
 使用 Struts portlet 實現頁面導航(圖六)

  創建獨立的 Struts 模塊和文件
  對于我們的樣本應用程序,我們創建了四個 Struts 模塊,以及它們自己的 Struts 配置文件、行為和 JSPs。這些 Struts 模塊是:
  
  address
  phone-numbers
  overview
  default.
  
  我們也配置了 web.xml 和 portlet.xml 文件,并使用 default 模塊執行從一個模塊到另一個模塊的轉換。
  
  接下來,我們將會根據實現的需要講解我們的文件需要的改動。
  
  在 Struts 模塊中開發頁面導航
  我們在以下三個模塊中實現頁面導航:
  
  overview
  address
  phone-numbers.
  
  除了存在一些細微的差別以外,這些模塊中每一個的頁面導航開發任務幾乎都是相同的。因此,我們將講解實現 overview 模塊的頁面導航的任務,然后再描述一下其他模塊的實現任務與此的差別。此外,我們還會講解特定于 Struts 模塊的開發過程,該模塊是為 default 模塊而轉換的。在我們的實現中,default 模塊用于將控制權交給下一個適當的模塊;并不需要頁面導航。然而,由于它啟動其他模塊來執行模塊轉換并且是導航結構的一個主要部分,所以我們這里也將它包括在內。
  
  在 Application Developer 中,我們創建一個支持 Struts Version 1.1 的 Web 項目,然后為開發任務創建文件,如下面的表 1 所示。
  
  表 1. 開發構件列表
  
 使用 Struts portlet 實現頁面導航(圖七)

  以下是表 1 所示構件的簡要描述:
  
  JSP 文件:
  我們開發了五個 JSP 文件:
  用于 default 模塊的 index.jsp 和 failure.jsp 文件;
  用于 address 模塊的 address.jsp 文件;
  用于 phone-numbers 模塊的 phone-numbers.jsp 文件;
  用于 overview 模塊的 overview.jsp 文件。
  操作:
  我們在 com.test.strutstest.actions 包中創建四個 Struts 操作。它們的類為:
  DisplayAction
  DisplayAddressInfoAction
  DisplayPhoneInfoAction

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巫溪县| 岳池县| 双柏县| 水富县| 荥经县| 焉耆| 光山县| 忻州市| 墨竹工卡县| 庄浪县| 仙游县| 水富县| 城口县| 尤溪县| 扶余县| 依兰县| 黎城县| 河曲县| 叙永县| 东海县| 洪洞县| 广东省| 乌海市| 蒙自县| 天祝| 宜宾市| 虎林市| 武隆县| 凤凰县| 大竹县| 乳山市| 衡阳县| 蓬安县| 通河县| 舟曲县| 蕲春县| 西乡县| 乡城县| 苍溪县| 阿图什市| 枞阳县|