Struts Portlet 的版本注意事項

© Copyright International Business Machines Corporation 2006. All rights reserved.US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

版本注意事項

1.0 限制
   1.1 Struts Portlet 工具未充分支援 Struts 範本標示
   1.2 Struts Portlet 工具不支援 Struts Tiles Portlet 開發
2.0 已知的問題和暫行解決方法
   2.1 匯入的 Struts Portlet 範例發生目標執行時期未定義的錯誤
   2.2 動態網頁範本支援不適用於 Struts tiles Portlet 專案

1.0 限制

1.1 Struts Portlet 工具未充分支援 Struts 範本標示

在開發 Struts Portlet 專案時,請注意 Struts Portlet 工具並未充分支援 Struts 範本標示。

  1. 從選用區將 Struts 範本標示新增至網頁時,工具會為使用者產生錯誤的 Struts web taglib 指引:
    <%@taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template"%>
    而不是正確的 Struts Portlet 範本 taglib 指引:

    <%@taglib uri="http://struts.apache.org/tags-template" prefix="template"%>

    修正該頁面的 taglib 指引並無法解決問題,因為後續新增範本標示時還是會新增不正確的 taglib 指引。
  2. 在 Page Designer 中看不到 Struts 範本標示。 

1.2 Struts Portlet 工具不支援 Struts tiles Portlet 開發

Struts Portlet 工具目前不支援 Struts tiles Portlet 開發,但提供 Struts tiles Portlet 範例(IBM 和 JSR168)供您匯入工作區,協助您在 Portlet 應用程式中配置 Portlet 來使用 tiles。

附註:在 Struts Portlet 專案內開發 tiles 可能引起新增「動態範本支援 (Struts Tiles)」Poject Facet。這會造成 Portlet 的部署發生問題。如需相關資訊,請參閱已知的問題和暫行解決方法。

2.0 已知的問題和暫行解決方法

2.1 匯入的 Struts Portlet 範例發生目標執行時期未定義的錯誤

將 Struts Portlet 範例(IBM 或 JSR168)匯入工作區時,匯入的 Struts Portlet 範例可能發生目標執行時期未定義的錯誤。視工作台配置及機器上已安裝的伺服器而定,專案可能發生下列錯誤:「目標執行時期 WebSphere® Portal 6.0 版未定義」。這表示 WebSphere Portal 6.0 版不在工作台的伺服器清單中。

暫行解決方法
在使用範例之前,您必須先設定專案的目標伺服器執行時期。

  1. 確定有適當的目標伺服器可用。
    • 您可以設定喜好設定(視窗 > 喜好設定伺服器 > 已安裝的執行時期)來檢視和修改可用的伺服器清單。
    • 找出「WebSphere Portal 6.0 版 Stub」。這應該已隨著產品的入口網站工具特性一起安裝。否則,請按一下新增按鈕來新增 WebSphere Portal 6.0 版執行時期。
  2. 選取匯入的專案,然後利用快速功能表來開啟專案內容。
  3. 選取目標執行時期。應該有一連串可用的「目標執行時期」符合您的專案。
  4. 按一下確定。 
  5. 對範例所匯入的 EAR 專案,重複這些步驟。
設定目標執行時期之後,請重建專案來移除錯誤,然後就可以部署:
  1. 若要重建專案,請按一下專案 > 清除 > 清除所有專案清除選取的專案,然後按一下確定。附註:有些範例會有錯誤。
  2. 若要部署有錯誤的範例,您必須選取容許有錯誤的應用程式發佈至伺服器勾選框(視窗 > 喜好設定 > 伺服器 > WebSphere)來設定喜好設定。 
  3. 按一下確定
  4. 若要部署專案,請選取專案(不是 EAR 專案),再按一下執行為 > 在伺服器中執行。確定為目標執行時期選取相同類型的伺服器。

2.2 動態網頁範本支援不適用於 Struts tiles Portlet 專案

在使用 Struts tiles Portlet 時,可能會引發安裝「動態網頁範本支援 (Struts Tiles)」Poject Facet。新增「動態網頁範本支援 (Struts Tiles)」是在動態 Web 專案中使用 Struts tiles 的簡單方法,而不是在 Struts Portlet 專案中。如果已安裝,將會導致部署時發生執行時期錯誤。此外,使用選用區將 tiles 標示新增至 Struts Portlet JSP,還會導致新增不正確的 taglib 指引。

暫行解決方法:如果您在開發 Struts tiles Portlet,則在部署之前,您應該:

  1. 判斷是否已安裝「動態網頁範本支援 (Struts Tiles)」Poject Facet。您可以開啟「專案內容 > Project Facet」來判斷。
  2. 如果已安裝,請移除已新增至專案中的額外 servlet 和配置檔項目:
    • 在「部署描述子編輯器」中開啟 web.xml 檔案。然後,在 Servlet 標籤上,移除 TilesServlet 項目並儲存檔案。
    • 在「Struts 配置檔編輯器」中開啟 struts-config.xml 檔案。然後,在「外掛程式」標籤上,移除 org.apache.struts.tiles.TilesPlugin 項目並儲存檔案。
      附註:從 Poject Facet 頁面中移除「動態網頁範本支援 (Struts Tiles)」Poject Facet 並不會移除上述項目。最好將此 Poject Facet 項目留在清單中。
  3. 對於含有 tiles 標示的每一個 JSP,請檢查並查看已使用 Struts Portlet tiles taglib。如果未使用(指 WPS 6.0 版 Struts tiles Portlet),
    • 請將:<%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>
    • 改為:<%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>