您不能在伺服器中執行內含未連結的 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 固定會試著新增新物件到 "parent" 而非 "container" 中。
暫行解決辦法是建立所要更新的關聯式記錄清單, 並在其中包含新列,以作為第一層關係。舉例來說, 如果您想在 CUSTOMER 所擁有的 ORDERS 表格中新增一列, 請建立一個關聯式記錄清單 ORDERS,並在 ORDERS 中新增一列, 而不要建立 CUSTOMER -> 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 轉換器,另一個 inputText 欄位有 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,仍可能發生衝突。 建議您將 JSP 名稱併入 ID 中,以確保該 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 時,其行為如同唯讀般。當您初次載入頁面時, 或者當您將頁面送出給伺服器後,便可能發生此問題。暫行解決辦法是使用外部瀏覽器。
此問題是因在 Faces 頁面的 URL 中以及在頁面資源(css 與影像)的相對路徑中使用 Faces 字首所致。 其暫行解決辦法有二:
1) 使用頁面資訊的完整路徑名稱。
2) 使用副檔名為 .faces 且非 faces/ 字首的 Faces 頁面 URL。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 or /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 程式碼, 以移除額外的索引與直欄名稱(如上例所示)。
一些較早的「使用 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 Face (JSF) 頁面在送出時可能遺漏內容而發生問題。您可以必須思索如何維護頁面的狀態, 以及如何處理設有相對路徑之頁面資源(例如 CSS 與影像)的要求。 暫行解決辦法是 JSF 頁面的 URL 應使用 .faces 副檔名選項。舉例來說, JSF 頁面 myPage.jsp 的 URL 為 /MyWebApp/myPage.faces。這個副檔名定義在專案 web.xml 檔中。另一種做法是將狀態儲存在用戶端中。