您不能在伺服器中執行含未連結的 Faces 用戶端元件的 Faces JSP 檔。 您必須將 Faces 用戶端元件連結至用戶端資料物件,才能在伺服器中執行。
這個問題是內部 WDO 程式碼中的 NullPointerExceptions 所造成。 如果要暫時解決這個問題,請用預設值來取代資料庫中的空值,或將您的伺服器升級至 WAS 6.0。 如果升級的話,請務必遵循《移轉手冊》中的標題為「移轉含 Faces 用戶端元件的 JavaServer Faces 資源」的章節。
附註:含有從空白關聯式記錄建立的用戶端資料之 Faces JSP 也會因為相同原因而無法在 WAS 5.1 中執行。 這個問題沒有簡單的暫行解決方法。
如果在建立好事件處理常式片段之後,重新命名「在目標元件中將所選物件設為 root」事件處理常式的目標元件,JavaScript 會不正確。如果要暫時解決這個問題,請刪除這個片段,再重新建立。
Portlet 不支援實作檔案上載和下載功能的 Faces 元件。 這些 Faces 元件包括:
- 檔案上載
- 當連結至 BLOB(或 byte[])資料來源時的影像、鏈結和媒體播放器
將列新增至在資料格線中,深度為兩個或兩個以上層次的關聯式記錄清單所連結的資料格線之後,當您送出 Faces JSP 檔時, 會出現 java.lang.IllegalArgumentException:'CUSTOMERS' 的 'CUSTOMERS_ORDERS' 特性不是一項包含。
這是 Faces 用戶端處理更新項目時的方法限制。 在 SDO 中,所有關係都包含 (containment=true) 在 "DatagraphRoot" 內,每個關係都會參照 (containment=false) 這個 root 所包含的其他關係。Faces 用戶端 DiffHandlers 一律會試圖將新物件新增至「母項」,而不是「儲存器」中。
這個問題的暫行解決方法是建立要更新的關聯式記錄清單,新列是第一層次的關係。 比方說,如果您要將列新增至 CUSTOMER 所擁有的 ORDERS 表格中,而不是建立 CUSTOMER -> ORDERS 關係,之後,再將列新增至 ORDERS 中,您將建立一份關聯式記錄清單 ORDERS,再將一列新增至 ORDERS 中。
如果在直欄含有輸入元件的 dataTable 中,又有巢狀 dataTable(比方說,列的內容是集合),將無法正確更新資料模型。
將資料放在從網頁範本衍生的 Faces JSP 檔時,所產生之標示的位置可能錯誤。 如果範本在頁面主體內有多個內容區域,放下選用區頁面資料視圖或資料抽屜中的資料時,一律會在第一個內容區域中產生新的標示。 如果所需要的目標不在這個內容區域中,請切換成來源模式。 之後,再剪下產生的程式碼,將它貼在正確的位置。 請確定已選取所有新的標示,如果有含括的 h:form 標示,它也包括在內,另外也請確定貼上的位置是在所需內容區域中的 hx:scriptCollector 標示內。
當使用最初利用 WSAD 5.1.2 來開發的專案時,系統可能會提示使用者移轉專案中的 Faces 資源。 如果使用者回應「是」,就會自動將 Faces 執行時期更新至最新的層次;不過,如果利用 WDO 來存取資料,便需要手動執行其他配置:
- 在原始專案中,建立新的暫時 Faces JSP 檔。(按一下檔案 > 新建 > Faces JSP 檔。 請參閱線上說明,以取得協助。)
- 從選用區的資料抽屜中,將關聯式記錄元件拖曳至頁面中。請選擇重複使用現有的 Meta 資料,再選取所列出的任何現有的 WDO .xml 檔。 這個程序會產生任何必要的配置,以便繼續在這個專案中使用 WDO。
- 刪除暫時 JSP 檔。
如果需要詳細資訊,請參閱本產品的《移轉手冊》。
當使用者在單一頁面中有多個 inputText 欄位時,可能無法正確更新 inputText 欄位的驗證頁面。 如果 inputText 欄位有不同的轉換器子標示,就會發生這個問題。 比方說,如果一個 inputText 欄位在使用 convertNumber 轉換器,另一個有 convertDateTime 轉換器,當切換標示時,無法正確重新整理驗證頁面。 暫行解決方案有兩個:切換至來源模式,再按一下子項驗證或 Helper 標示(這時會顯示這個頁面)。 另一個暫行解決方法是關閉再重新開啟 JSP。
為 EGL 用戶端資料所產生的 DiffHandlers 有不正確的巢狀類型參照語法。 如果要暫時解決這個問題,請編輯用戶端資料調解者類別來使用正確的語法。 請利用句點 (.) 來取代錢幣符號 ($)。 比方說,如果您有如下程式碼:
if (_Root instanceof pagehandlers.overdueaccounts$COMPANYNAME)
請將它改成:if (_Root instanceof pagehandlers.overdueaccounts.COMPANYNAME)
當您建立重複使用現有 SDO/WDO 用戶端資料的用戶端資料時,請務必重複使用 WDO/SDO Meta 資料檔及模型名稱。 當您從「頁面資料」視圖中建立 WDO/SDO 時,請選取「從現有的記錄或記錄清單中,重複使用 Meta 資料定義」。 之後,請瀏覽和選取您在重複使用的 SDO 之 Meta 資料檔。
如果要修正這個問題,請確定在相同入口網站網頁所用的所有 Portlet 之間,所有 JSF 和 JSF 用戶端控制項都有唯一 ID。 如果入口網站網頁使用重複 ID 的不明 Portlet,仍可能發生衝突。 建議您在 ID 中併入 JSP 名稱,以確保 ID 是唯一的。
這個問題沒有已知的暫行解決方法。建議您儘量少用標籤以避免雜亂。
沒有暫行解決方法。請勿在入口網站的樹狀視圖中使用自訂開啟和關閉圖示。
當在 Y 軸上繪製一系列的封閉值時,可能會失去預設格式的精準度。 失去精準度可能使值重複。 如果要避免這個問題,請選擇適當的自訂數字格式,不要使用預設值。
如果要暫時解決這個問題,請增加圖形的大小。
資料格線的標頭和標底不會出現在下列實務中:
- 當資料格線連結至空白的關聯式清單時
- 當依程式的方式將項目新增至資料格線,且項目數超出資料格線的高度時
當您用不同的伺服器機器來代管 Web 服務和用戶端時,Web 服務呼叫會失敗。 雖然 Macromedia 網站公佈了一些解決方案來解決這個跨網域的問題,但其實沒有已知的暫行解決方法。 建議您使用相同的伺服器來代管 Web 服務伺服器和用戶端。
如果要從專案中移除這些警告,請用滑鼠右鍵按一下含警告的 javasource 資料夾、專案或套件。 之後,再從快速功能表中選取程式碼 > 組織匯入項目。
當您將 Faces 用戶端元件放在相同頁面包含多重用戶端資料頁面中,可能會出現這個錯誤。 如果要暫時解決這個問題,請切換至 JSP 的「程式碼」視圖,將所有 <odc:clientData> 標示移至緊接在 <h:form> 標示之下。
如果將樹狀結構元件放在頁面中,或剪下樹狀結構元件的程式碼,將它貼到頁面中,<odc:tree> 標示可能會意外出現作為其母項的 <p> 標示。 這會使樹狀結構元件不正確地呈現在結果 HTML 頁面中。如果要暫時解決這個問題,請刪除括住 <odc:tree> 標示的 <p></p> 標示。
您不能從「縮圖」視圖或「專案瀏覽器」視圖中,將影像檔放在標籤畫面中。 如果要將影像放在畫面中,請拖放「選用區」視圖 HTML 標示抽屜中的影像,再選取您要放下的影像檔。
遵循移轉手冊中的步驟來重設包含 Faces 用戶端元件之專案的伺服器目標(從 WebSphere Application Server 5.1 版重設為 6.0 版)之後,可能會出現中斷鏈結的警告。 如果出現這些警告,或您在 WebSphere Application Server 6.0 版中執行頁面時,頁面並未正確出現,請關閉您的 Web 專案,再重新開啟。
當利用內部瀏覽器在伺服器中執行 Rich Text Editor 時,Rich Text Editor 的行為會如同它是唯讀的。 在最初載入頁面時,或在頁面送交給伺服器之後,可能會出現這個問題。 請利用外部瀏覽器來暫時解決這個問題。
這個問題是在 Faces 頁面的 URL 和頁面資源(css 和影像)的相對路徑中使用 Faces 字首所造成的。 您可利用兩種方式來暫時解決這個問題:
1) 使用頁面資源的完整路徑名稱。
2) 使用副檔名為 .faces 的 Faces 頁面之 URL,字首沒有 faces/。Faces 頁面必須由 Faces Servlet 來處理。 在專案 web.xml 檔中,依預設,會將兩項對映新增至這個 Faces Servlet 中。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping><servlet-mapping>
Faces 資料夾和副檔名為 Faces 的檔案實際上並不存在。 您只需要使它們成為 Faces 頁面 URL 的一部分。 如果要處理 page1.jsp,您可以使用 /faces/page1.jsp 或 /page1.faces。 您可以配置這兩者(比方說,您可以利用 .page 來作為副檔名)。
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
當資料格線只用一個直欄來連結至關聯式記錄清單所產生的用戶端資料時,會產生不正確的連結。 比方說:會產生 #{pc_Index1.surveys[0].NAME},而不是正確的 {pc_Index1.surveys} 連結。 暫行解決方法是手動編輯 JSP 程式碼來移除額外的索引和直欄名稱(如上述範例所示)。
發生這個問題是因為工作區建置作業不完整。 如果要移除所有錯誤,請移至「專案」功能表,選取清除...。 之後,選擇清除 FacesClientTutorial 專案。 清除完成,重新建置作業也完成之後,所有錯誤應該都會消失。
部分舊版的說明主題「移轉含 Faces 用戶端元件的 JavaServer Faces 資源」可能遺漏下列項目的相關資訊:
如果您遺漏這項資訊,請參閱《移轉手冊》的 HTML 版本,它在第一片 CD 的根目錄中,或在電子影像的 disk1/migrate.html 之下。
- 將含有 Faces 用戶端元件之專案的目標伺服器從 WebSphere Application Server 5.1 版改成 6.0 版時,可能會發生兩個問題:
- 將不再編譯已產生的用戶端資料調解者類別。
- 將專案的目標伺服器改成 WebSphere Application Server 6.0 版之後,無法在伺服器中執行連結於 WDO 的樹狀視圖 Faces 用戶端元件。
- 在 Linux 平台或非英文語言環境中運作的相關資訊。
在送出時,會出現 JavaServer Faces (JSF) 頁面顯示為遺失內容的問題。 這可能與頁面的維護方式及相對路徑(如 theme/stylesheet.css)指定之頁面資源(如 css 和影像檔)的要求處理方式有關。 如果要暫時解決這個問題,JSF 頁面的 URL 應該使用 .faces 副檔名選項。 比方說,JSF 頁面 myPage.jsp 的 URL 是 /MyWebApp/myPage.faces。 這個副檔名定義在專案 web.xml 檔中。 另一個選項是選擇將狀態儲存在用戶端中。