從 JSF 1.2 遷移到 JSF 2.0 面臨哪些挑戰?
從 JSF 1.2 升級到 JSF 2.0 的痛苦
從 JSF 1.2 升級到 2.0 的痛苦取決於您目前使用的視圖技術和未來。這取決於您計劃使用的查看技術。
- JSP 2.x 到 JSP 2.x = 幾乎不費力。
- Facelets 1.x 到 Facelets 2.0 = 更少的工作量。
- JSP 2.x 到 Facelets 2.0 = 大量工作。如果您有自訂元件,則需要加倍。
基本變更
無論切換視圖技術如何,您至少應該執行以下步驟:
- 從/WEB-INF/lib(如果存在)中刪除JSF 1.2 JAR。
- 將 JSF 2.0 JAR 拖放到 /WEB-INF/lib 中(如果 JSF 1.2 由 servlet 容器提供,請設定類別以在 servlet 容器的庫之前先載入 Web 應用程式庫)。策略(另請參閱應用程式伺服器 JSF2 類別載入問題)。
- 更新 faces-config.xml 中的根宣告以符合 JSF 2.0 規格。
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
注意:如果您使用的是JSF 2.2 或更高版本,請在上面的XML 程式碼段中使用http://xmlns.jcp 而不是http://java. sun.com。 .org 命名空間域。
- 確保 web.xml 中的路由宣告至少符合 Servlet 2.5。 JSF 2.0 在 2.4 以下將無法運作(儘管駭客是可能的)。
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
注意:如果您使用的是Servlet 3.0 或更高版本,請在上面的XML 程式碼段中使用http://xmlns.jcp 而不是http://java. sun.com。 .org 命名空間域。
JSP 2.x 到 JSP 2.x
如果您使用的是 JSP 2。基本上您不需要更改任何其他內容。 逐步升級
如果您已經在FacesServlet 中使用後綴URL 模式(例如.jsf)並且想要
只使用,FacesServlet 首先會掃描只使用,FacesServlet 首先會掃描只使用,FacesServlet 首先會掃描
只使用,FacesServlet 首先會掃描只使用,FacesServlet 先掃描.xhtml 文件,如果不存在,則為*.jsp記住掃描文件是個好主意。這允許從 JSP 逐步轉換到 Facelets,而無需更改 URL。但是,如果您使用前綴URL 模式(例如/faces/)並希望分階段從JSP 升級到Facelets,請將其更改為.jsf 並可能替換現有的所有連結JSP頁面也必須改變。
請注意,新的 JSF 2.0 提供的隱式導航不會掃描檔案是否存在,而是導航到結果.xhtml。因此,如果您從 .jsp 移動到 .jsp,您仍然需要以 JSF 1.x 方式將其包含在視圖 ID 中。
Facelets 1.x 到 Facelets 2.0
我使用 Facelets 1.x 作為我的視圖技術,Facelets 2.x 作為我的視圖技術,
Facelets 2.0- 作為我的視圖技術,
- Facelets 2.0
- 從 /WEB-INF/lib 中刪除 Facelets 1.x JAR。
- Facelets 1.x 從 faces-config.xml 中刪除 FaceletViewHandler。
- 如果您有自訂 FaceletViewHandler 實現,則必須更新它以擴展 ViewHandlerWrapper。
- 儘管沒有必要,但出於清理目的,請從 web.xml 中刪除 Facelets 1.x 相關的
值(例如, javax.faces.DEFAULT_SUFFIX 值為 *.xhtml)。這已經是 Facelets 2.0 中的預設值。
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
JSP 2.x 到Facelets 2.0 我們正在使用JSP 2.x
作為我們的視圖技術,並將很快升級到Facelets 2.0
如果如果您願意,您必須在發佈網站之前進行大量更改。我們基本上改變了這裡的視圖技術。 母版頁修改<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
必須在所有母版頁中修改以下基本 JSP 範本。
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" version="2.0">
改為以下基本 Facelets 範本。
注意:如果您使用的是JSF 2.2 或更高版本,請在上面的XHTML 程式碼段中使用http://xmlns.jcp.org 名稱而不是http://java. sun.com。空間域。包含頁面變更
如果您現有的JSP 頁面設計良好,則不會有scriptlet 行程式碼,唯一的JSP 特定標記將是
jsp 應該只有是:包括>它們應該從:<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" version="2.0">
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <!DOCTYPE html> <f:view> <html lang="en"> <head> <title>JSP page</title> </head> <body> <h:outputText value="JSF components here." /> </body> </html> </f:view>
以上是從 JSF 1.2 遷移到 JSF 2.0 面臨哪些挑戰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用IntelliJIDEAUltimate版本啟動Spring...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
