從 JSF 1.2 升級到 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-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。基本上您不需要更改任何其他內容。 逐步升級
如果您已經在FacesServlet 中使用後綴URL 模式(例如,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.x 作為我的視圖技術,
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">將現有 Facelet 標籤庫 XML 的根聲明更新為相容 Facelet 2.0。 注意:如果您使用的是JSF 2.2 或更高版本,請在上面的XML 程式碼段中使用http://xmlns.jcp 而不是http://java. sun.com。 .org 命名空間域。 這些基本上就夠了。
JSP 2.x 到Facelets 2.0 我們正在使用JSP 2.x
作為我們的視圖技術,並將很快升級到<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" >基本 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 包含頁面範本。
<%@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中文網其他相關文章!