Heim > Java > javaLernprogramm > Was sind die Herausforderungen bei der Migration von JSF 1.2 auf JSF 2.0 und wie unterscheiden sich diese Herausforderungen je nach verwendeter Ansichtstechnologie?

Was sind die Herausforderungen bei der Migration von JSF 1.2 auf JSF 2.0 und wie unterscheiden sich diese Herausforderungen je nach verwendeter Ansichtstechnologie?

Mary-Kate Olsen
Freigeben: 2024-12-28 03:08:10
Original
673 Leute haben es durchsucht

What are the challenges of migrating from JSF 1.2 to JSF 2.0, and how do these challenges vary depending on the view technology used?

Der Aufwand beim Upgrade von JSF 1.2 auf JSF 2.0

Der Aufwand beim Upgrade von JSF 1.2 auf 2.0 basiert auf der Ansichtstechnologie, die Sie derzeit verwenden, und auf der Zukunft. Dies hängt von der Anzeigetechnologie ab, die Sie verwenden möchten.

  • JSP 2.x zu JSP 2.x = fast kein Aufwand.
  • Facelets 1.x bis Facelets 2.0 = weniger Aufwand.
  • JSP 2.x zu Facelets 2.0 = Viel Arbeit. Verdoppeln Sie das, wenn Sie benutzerdefinierte Komponenten haben.

Grundlegende Änderungen

Unabhängig von der Technologie zum Wechseln der Ansicht sollten Sie mindestens die folgenden Schritte ausführen:

  • Entfernen Sie die JSF 1.2-JAR aus /WEB-INF/lib (falls vorhanden).
  • Legen Sie die JSF 2.0-JAR in /WEB-INF/lib ab (wenn JSF 1.2 von einem Servlet-Container bereitgestellt wurde, legen Sie die Klasse so fest, dass zuerst die Webanwendungsbibliotheken und dann die Bibliotheken des Servlet-Containers geladen werden). Richtlinie (siehe auch Probleme beim Laden von JSF2-Klassen des Anwendungsservers).
  • Aktualisieren Sie die Stammdeklaration in faces-config.xml, damit sie der JSF 2.0-Spezifikation entspricht.
  <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">
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Hinweis: Wenn Sie JSF 2.2 oder höher verwenden, verwenden Sie im gesamten XML-Ausschnitt http://xmlns.jcp anstelle von http://java.sun.com .org-Namespace-Domäne.

  • Stellen Sie sicher, dass die Routendeklaration in web.xml mindestens Servlet 2.5-kompatibel ist. JSF 2.0 funktioniert nicht unter 2.4 (obwohl Hacks möglich sind).
  <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"
     >
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Hinweis: Wenn Sie Servlet 3.0 oder höher verwenden, verwenden Sie im gesamten XML-Snippet oben http://xmlns.jcp anstelle von http://java.sun.com .org-Namespace-Domäne.

JSP 2.x zu JSP 2.x

Wenn Sie JSP 2 verwenden. Im Grunde müssen Sie nichts weiter ändern. Schrittweises Upgrade

Wenn Sie bereits ein Suffix-URL-Muster (z. B.

.jsf) für FacesServlet verwenden und

einfach verwenden

möchten, sucht FacesServlet zunächst nach .xhtml-Dateien und, falls nicht vorhanden, *.jsp Denken Sie daran, Ihre Dateien zu scannen. Dies ermöglicht eine schrittweise Konvertierung von JSP zu Facelets, ohne die URLs zu ändern.

Wenn Sie jedoch ein Präfix-URL-Muster verwenden (z. B. /faces/) und schrittweise von JSP auf Facelets aktualisieren möchten, ändern Sie es in .jsf und ersetzen Sie möglicherweise die vorhandenen Alle-Links im Die JSP-Seite muss ebenfalls geändert werden.

Bitte beachten Sie, dass die neue implizite Navigation von JSF 2.0 nicht nach der Existenz der Datei sucht und trotzdem zu „ergebnis.xhtml“ navigiert. Wenn Sie also von .jsp oder zu .jsp wechseln, müssen Sie es immer noch in der JSF 1.x-Methode in die Ansichts-ID einschließen.

Facelets 1.x bis Facelets 2.0

Ich verwende Facelets 1.x als meine Ansichtstechnologie und Facelets 2.0<🎜 kommt mit JSF 2.0 > Wenn Sie es verwenden möchten, müssen Sie die folgenden zusätzlichen Schritte ausführen:

    Entfernen Sie die Facelets 1.x-JAR aus /WEB-INF/lib.
  • Facelets 1.x FaceletViewHandler aus faces-config.xml entfernen.
  • Wenn Sie über eine benutzerdefinierte FaceletViewHandler-Implementierung verfügen, müssen Sie diese aktualisieren, um ViewHandlerWrapper zu erweitern.
  • Obwohl unnötig, entfernen Sie zu Bereinigungszwecken Facelets 1.x-bezogene -Werte (z. B. javax.faces.DEFAULT_SUFFIX-Wert ist *.xhtml) aus web.xml. Dies ist bereits die Standardeinstellung in Facelets 2.0.
  • Aktualisieren Sie die Stammdeklaration Ihrer vorhandenen Facelet-Tag-Bibliothek XML, um Facelets 2.0-kompatibel zu sein.
  •   <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">
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Hinweis: Wenn Sie JSF 2.2 oder höher verwenden, verwenden Sie im gesamten XML-Ausschnitt http://xmlns.jcp anstelle von http://java.sun.com .org-Namespace-Domäne.

    Diese sind grundsätzlich ausreichend.

    JSP 2.x auf Facelets 2.0

    Wir verwenden

    JSP 2.x als unsere Ansichtstechnologie und werden in Kürze auf Facelets 2.0 aktualisieren Wenn Sie möchten, müssen Sie vor der Veröffentlichung Ihrer Website viele Änderungen vornehmen. Wir ändern hier grundsätzlich die Ansichtstechnik.

    Masterseitenänderungen

    Die folgende grundlegende JSP-Vorlage muss in allen Masterseiten geändert werden.

      <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"
         >
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Wechseln Sie zur folgenden grundlegenden Facelets-Vorlage.

      <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">
    Nach dem Login kopieren
    Nach dem Login kopieren
    Hinweis: Wenn Sie JSF 2.2 oder höher verwenden, verwenden Sie im gesamten XHTML-Snippet oben den Namen http://xmlns.jcp.org anstelle von http://java.sun.com räumliche Domäne.

    Seitenänderungen einbeziehen

    Wenn Ihre vorhandenen JSP-Seiten gut gestaltet sind, gibt es keine Scriptlet Codezeilen und das einzige JSP-spezifische Tag wird Sie sollten geändert werden von:

      <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">
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren

    Ändern Sie wie folgt.

      <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"
         >
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren

    Grundlegende JSP-Include-Seitenvorlage...

      <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">
    Nach dem Login kopieren
    Nach dem Login kopieren

    ... muss in die folgende grundlegende Facelets-Include-Seitenvorlage geändert werden.

    <%@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>
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWas sind die Herausforderungen bei der Migration von JSF 1.2 auf JSF 2.0 und wie unterscheiden sich diese Herausforderungen je nach verwendeter Ansichtstechnologie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage