JavaServer Faces 工具 - 版本注意事項


1.0 限制
   1.1 Faces 用戶端:含未連結的 Faces 用戶端元件的 Faces JSP 不能在伺服器中執行
   1.2 Faces 用戶端:如果內含 Faces 用戶端資料的 Faces JSP 檔,是從內含空值整數、浮點數、Boolean 或字元資料類型的 WDO 建立而來,則無法在 WAS 5.1 中執行
   1.3 Faces 用戶端:插入「在目標元件中將所選物件設為 root」事件處理常式之後,重新命名目標元件 ID
   1.4 Portlet 不支援檔案上載和下載元件
   1.5 Faces 用戶端:當在資料格線中新增一列時,如果該資料格線所連結的關聯式記錄清單在資料圖中有二或多層深度,則在伺服器上將會失敗
   1.6 巢狀 dataTable 中的輸入欄位無法正常運作
2.0 已知的問題
   2.1 將資料放入從網頁範本中衍生的 Faces JSP 檔所發生的問題
   2.2 Faces 資源移轉不會更新 SDO 配置
   2.3 在 inputText 中,無法正確更新驗證頁面
   2.4 Faces 用戶端:在建立 EGL 的用戶端資料之後,編譯錯誤:「無法利用二進位名稱來參照巢狀類型」
   2.5 Faces 用戶端:利用相同模型名稱以共用各 Portlet 中的 WDO/SDO 頁面資料的 Faces 用戶端資料模型無法運作
   2.6 Faces 用戶端:Faces 用戶端控制事件在入口網站中無法正確運作,因為遺漏 viewId
   2.7 Faces 用戶端:繪圖時圓餅圖標籤和標題重疊。
   2.8 Faces 用戶端:入口網站不會在樹狀視圖中顯示自訂開啟和關閉圖示
   2.9 Faces 用戶端:繪圖執行時期 - Y 軸刻度中的部分值重複
   2.10 Faces 用戶端:在 GraphDraw 中,切斷 X 軸標籤字元
   2.11 Faces 用戶端:依程式的方式將項目新增至資料格線時,未將標頭/標底列新增至資料格線中
   2.12 Faces 用戶端:網路中的 Web 服務呼叫失敗
   2.13 Faces 用戶端:當建立用戶端資料時,「問題」視圖中會出現警告(未用匯入的類別警告)
   2.14 Faces 用戶端:「無法將 Faces 用戶端元件放到 clientData 標示前面」錯誤訊息的暫行解決方法
   2.15 Faces 用戶端:將樹狀視圖放在程式碼中
   2.16 將影像檔放在「畫面 - 已加上標籤元件」中
   2.17 Faces 用戶端:在遵循移轉手冊中的步驟,來解決將目標重設為 WAS 6.0 時所產生的問題之後,可能會出現鏈結中斷的警告
   2.18 當使用內部瀏覽器時,無法編輯 Rich Text Editor
   2.19 遺失頁面狀態 - 不會送出表單
   2.20 Faces 用戶端:如果資料格線所連結關聯式記錄清單只含一個直欄,則無法在伺服器上執行
   2.21 Faces 用戶端:「使用 Faces 用戶端元件來移轉 JavaServer Faces 資源」線上說明主題可能遺漏資訊
   2.22 JavaServer Face 頁面在送出時可能遺失內容

1.0 限制

1.1 Faces 用戶端:含未連結的 Faces 用戶端元件的 Faces JSP 不能在伺服器中執行

您不能在伺服器中執行內含未連結的 Faces 用戶端元件的 Faces JSP 檔。 您必須將 Faces 用戶端元件連結至用戶端資料物件,才能在伺服器中執行。

1.2 Faces 用戶端:如果內含 Faces 用戶端資料的 Faces JSP 檔,是從內含空值整數、浮點數、Boolean 或字元資料類型的 WDO 建立而來,則無法在 WAS 5.1 中執行

此問題是內部 WDO 程式碼中的 NullPointerExceptions 所造成。 暫行解決辦法是將資料庫中的空值換成預設值,或將伺服器升級至 WAS 6.0。 若要升級,請務必遵循移轉手冊的「移轉含 Faces 用戶端元件的 JavaServer Faces 資源」一節進行。

附註:含有從空白關聯式記錄建立的用戶端資料之 Faces JSP 也會因為相同原因而無法在 WAS 5.1 中執行。 這個問題沒有簡單的暫行解決方法。

1.3 Faces 用戶端:插入「在目標元件中將所選物件設為 root」事件處理常式之後,重新命名目標元件 ID

如果在建立好事件處理常式片段之後,重新命名「在目標元件中將所選物件設為 root」事件處理常式的目標元件, JavaScript 會不正確。暫行解決辦法是刪除這個片段再重新建立。

1.4 Portlet 不支援檔案上載和下載元件

Portlet 不支援實作檔案上載和下載功能的 Faces 元件。 這些 Faces 元件包括:

1.5 Faces 用戶端:當在資料格線中新增一列時,如果該資料格線所連結的關聯式記錄清單在資料圖中有二或多層深度,則在伺服器上將會失敗

在您於資料格線中新增一列後,如果該資料格線所連結的關聯式記錄在資料圖中有二或多層深度, 當您送出 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 中新增一列。

1.6 巢狀 dataTable 中的輸入欄位無法正常運作

如果您在其直欄中有輸入元件的 dataTable(例如列的內容為一個集合)內套入一個 dataTable, 資料模型將無法正確更新。

2.0 已知的問題

2.1 將資料放入從網頁範本中衍生的 Faces JSP 檔所發生的問題

將資料放在從網頁範本衍生的 Faces JSP 檔時,所產生之標示的位置可能錯誤。 如果範本在頁面主體內有多個內容區域,當您將「頁面資料視圖」或「資料抽屜」中的資料放到選用區時, 會固定在第一個內容區域中產生新的標示。 如果所需要的目標不在這個內容區域中,請切換成來源模式。然後, 剪下產生的來源,並將它貼到正確的位置上。請確定已選取所有新的標示,如果有含括的 h:form 標示,它也包括在內,另外也請確定貼上的位置是在所需內容區域中的 hx:scriptCollector 標示內。

2.2 Faces 資源移轉不會更新 SDO 配置

當使用最初利用 WSAD 5.1.2 來開發的專案時,系統可能會提示使用者移轉專案中的 Faces 資源。 如果使用者回應「是」,則會將 Faces 執行時期自動更新成最新層次;但如果利用 WDO 來存取資料,便需要手動執行其他配置:

  1. 在原始專案中,建立新的暫時 Faces JSP 檔。 (按一下檔案 > 新建 > Faces JSP 檔。 請參閱線上說明,以取得協助。)
  2. 從選用區的資料抽屜中,將關聯式記錄元件拖曳至頁面中。請選擇重複使用現有的 Meta 資料,再選取所列出的任何現有的 WDO .xml 檔。 這個程序會產生任何必要的配置,以便繼續在這個專案中使用 WDO。
  3. 刪除暫時 JSP 檔。

如果需要詳細資訊,請參閱本產品的「移轉手冊」。

2.3 在 inputText 中,無法正確更新驗證頁面

當使用者在單一頁面中有多個 inputText 欄位時,可能無法正確更新 inputText 欄位的驗證頁面。 如果 inputText 欄位含有不同的轉換器子標示,便會發生這個問題。比方說, 如果某個 inputText 欄位在使用 convertNumber 轉換器,另一個 inputText 欄位有 convertDateTime 轉換器, 當在標示之間切換時,無法正確重新整理驗證頁面。 暫行解決辦法有二:切換至來源模式,並按一下子項驗證或 Helper 標示(此時會重新整理頁面)。 另一種暫行解決辦法是關閉再重新開啟 JSP。

2.4 Faces 用戶端:在建立 EGL 的用戶端資料之後,編譯錯誤:「無法利用二進位名稱來參照巢狀類型」

為 EGL 用戶端資料所產生的 DiffHandlers 有不正確的巢狀類型參照語法。 暫行解決辦法是編輯用戶端資料調解者類別以使用正確的語法。 請用 '.' 來取代 ($)。比方說,如果您的程式碼如下:

if (_Root instanceof pagehandlers.overdueaccounts$COMPANYNAME)

請改為:

if (_Root instanceof pagehandlers.overdueaccounts.COMPANYNAME)

2.5 Faces 用戶端:利用相同模型名稱以共用各 Portlet 中的 WDO/SDO 頁面資料的 Faces 用戶端資料模型無法運作

在您建立會重複使用現有 SDO/WDO 用戶端資料的用戶端資料時,請務必重複使用 WDO/SDO Meta 資料檔案與模型名稱。 當您從「頁面資料」視圖來建立 WDO/SDO 時, 請選取「重複使用現有記錄或記錄清單中的 Meta 資料定義」。然後瀏覽並選取您要重複使用之 SDO 的 Meta 資料檔。

2.6 Faces 用戶端:Faces 用戶端控制事件在入口網站中無法正確運作,因為遺漏 viewId

如果要修正這個問題,請確定在相同入口網站網頁所用的所有 Portlet 之間,所有 JSF 和 JSF 用戶端控制項都有唯一 ID。 如果入口網站網頁使用含重複 ID 的不明 Portlet,仍可能發生衝突。 建議您將 JSP 名稱併入 ID 中,以確保該 ID 是唯一的。

2.7 Faces 用戶端:繪圖時圓餅圖標籤和標題重疊

這個問題沒有已知的暫行解決方法。建議您儘量少用標籤以避免雜亂。

2.8 Faces 用戶端:入口網站不會在樹狀視圖中顯示自訂開啟和關閉圖示

沒有暫行解決方法。請勿在入口網站的樹狀視圖中使用自訂開啟和關閉圖示。

2.9 Faces 用戶端:繪圖執行時期 - Y 軸刻度中的部分值重複

以預設格式化來說,當您在 Y 軸上繪製一連串的近似值時, 可能會喪失精準度。而因缺乏精準度,可能造成值重複。若要避免此問題, 請選擇適當的自訂數字格式,而不使用預設值。

2.10 Faces 用戶端:在 GraphDraw 中,切斷 X 軸標籤字元

暫行解決辦法是增加圖形大小。

2.11 Faces 用戶端:依程式的方式將項目新增至資料格線時,未將標頭/標底列新增至資料格線中

在下列情況下,資料格線的標頭與標底不會顯示:

  1. 當資料格線連結至空白的關聯式清單時
  2. 當依程式的方式將項目新增至資料格線,且項目數超出資料格線的高度時

2.12 Faces 用戶端:網路中的 Web 服務呼叫失敗

當您用不同的伺服器機器來代管 Web 服務和用戶端時,Web 服務呼叫將會失敗。 雖然 Macromedia 網站公佈了一些解決辦法來解決這個跨網域的問題,但其實沒有已知的暫行解決辦法。建議您使用相同的伺服器來代管 Web 服務伺服器和用戶端。

2.13 Faces 用戶端:當建立用戶端資料時,「問題」視圖中會出現警告(未用匯入的類別警告)

如果要將這些警告從專案中移除, 請用滑鼠右鍵按一下內含警告的 javasource 資料夾、專案或套件。然後選取快速功能表中的來源 > 組織匯入項目

2.14 Faces 用戶端:「無法將 Faces 用戶端元件放到 clientData 標示前面」錯誤訊息的暫行解決方法

當您將 Faces 用戶端元件放到同一頁面中包含多個用戶端資料的頁面時,可能會收到此錯誤。暫行解決辦法是切換至 JSP 的「程式碼」視圖, 將所有 <odc:clientData> 標示移至緊接在 <h:form> 標示之下。

2.15 Faces 用戶端:將樹狀視圖放在程式碼中

如果將樹狀結構元件放在頁面中,或剪下樹狀結構元件的來源,並將它貼到頁面中,<odc:tree> 標示可能會偶而出現作為其母項的 <p> 標示。 這會使樹狀結構元件不正確地呈現在結果 HTML 頁面中。如果要暫時解決這個問題,請刪除括住 <odc:tree> 標示的 <p></p> 標示。

2.16 將影像檔放在「畫面 - 已加上標籤元件」中

您不能從「縮圖」視圖或「專案瀏覽器」視圖中,將影像檔放在標籤畫面中。如果要將影像放在畫面中,請拖放「選用區」視圖 HTML 標示抽屜中的影像,再選取您要放下的影像檔。

2.17 Faces 用戶端:在遵循移轉手冊中的步驟,來解決將目標重設為 WAS 6.0 時所產生的問題之後,可能會出現鏈結中斷的警告

在您遵循移轉手冊中的步驟,為內含 Faces 用戶端元件的專案重設目標伺服器後(亦即, 從 WebSphere Application Server 5.1 版改為 6.0 版),您可能會收到鏈結中斷的警告。如果您收到這些警告, 或者您在 WebSphere Application Server 6.0 版中執行頁面時,頁面並未正確出現,請關閉您的 Web 專案,再重新開啟。

2.18 當使用內部瀏覽器時,無法編輯 Rich Text Editor

當您使用內部瀏覽器在伺服器中執行 Rich Text Editor 時,其行為如同唯讀般。當您初次載入頁面時, 或者當您將頁面送出給伺服器後,便可能發生此問題。暫行解決辦法是使用外部瀏覽器。

2.19 遺失頁面狀態 - 不會送出表單

此問題是因在 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>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

Faces 資料夾以及副檔名為 Faces 的檔案實際上並不存在。您只需讓它們成為 Faces 頁面 URL 的一部分。如果要處理 page1.jsp, 您可以使用 /faces/page1.jsp or /page1.faces。這兩者皆可配置(例如,可使用 .page 作為副檔名)。

2.20 Faces 用戶端:如果資料格線所連結關聯式記錄清單只含一個直欄,則無法在伺服器上執行

如果資料格線所連結的用戶端資料,是從只含一個直欄的關聯式記錄清單建立而來, 產生的連結會不正確。舉例來說,會產生 #{pc_Index1.surveys[0].NAME}, 而不是產生正確的連結 {pc_Index1.surveys}。暫行解決辦法是手動編輯 JSP 程式碼, 以移除額外的索引與直欄名稱(如上例所示)。

2.21 Faces 用戶端:「使用 Faces 用戶端元件來移轉 JavaServer Faces 資源」線上說明主題可能遺漏資訊

一些較早的「使用 Faces 用戶端元件來移轉 JavaServer Faces 資源」說明主題版本, 可能在下列項目方面遺漏資訊:

如果您沒有這項資訊, 請參閱 HTML 版「移轉手冊」 (位於第一張 CD 的根目錄中,或電子影像的 disk1/migrate.html 下)。

2.22 JavaServer Face 頁面在送出時可能遺失內容

因 JavaServer Face (JSF) 頁面在送出時可能遺漏內容而發生問題。您可以必須思索如何維護頁面的狀態, 以及如何處理設有相對路徑之頁面資源(例如 CSS 與影像)的要求。 暫行解決辦法是 JSF 頁面的 URL 應使用 .faces 副檔名選項。舉例來說, JSF 頁面 myPage.jsp 的 URL 為 /MyWebApp/myPage.faces。這個副檔名定義在專案 web.xml 檔中。另一種做法是將狀態儲存在用戶端中。

返回主 Readme 檔