Maison > Java > javaDidacticiel > Quels sont les défis liés à la migration de JSF 1.2 vers JSF 2.0, et comment ces défis varient-ils en fonction de la technologie de vue utilisée ?

Quels sont les défis liés à la migration de JSF 1.2 vers JSF 2.0, et comment ces défis varient-ils en fonction de la technologie de vue utilisée ?

Mary-Kate Olsen
Libérer: 2024-12-28 03:08:10
original
634 Les gens l'ont consulté

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?

La difficulté de la mise à niveau de JSF 1.2 vers JSF 2.0

La difficulté de la mise à niveau de JSF 1.2 vers 2.0 est basée sur la technologie d'affichage que vous utilisez actuellement et celle de l'avenir. Cela dépend de la technologie de visualisation que vous envisagez d'utiliser.

  • JSP 2.x vers JSP 2.x = presque aucun effort.
  • Facelets 1.x à Facelets 2.0 = moins d'effort.
  • JSP 2.x vers Facelets 2.0 = Beaucoup de travail. Doublez ce montant si vous avez des composants personnalisés.

Modifications de base

Indépendamment de la technologie de changement d'affichage, vous devez au moins effectuer les étapes suivantes :

  • Supprimez le JSF 1.2 JAR de /WEB-INF/lib (si présent).
  • Déposez le JSF 2.0 dans /WEB-INF/lib (si JSF 1.2 a été fourni par un conteneur de servlet, configurez la classe pour qu'elle charge les bibliothèques de l'application Web avant les bibliothèques du conteneur de servlet). Pensez à modifier le chargement. (voir également Problèmes de chargement de classe JSF2 du serveur d'applications).
  • Mettez à jour la déclaration racine dans faces-config.xml pour qu'elle corresponde à la spécification 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">
Copier après la connexion
Copier après la connexion
Copier après la connexion

Remarque : Si vous utilisez JSF 2.2 ou une version ultérieure, utilisez http://xmlns.jcp au lieu de http://java.sun.com dans tout l'extrait XML ci-dessus. Domaine d'espace de noms .org.

  • Assurez-vous que la déclaration de route dans web.xml est au moins conforme à Servlet 2.5. JSF 2.0 ne fonctionnera pas en dessous de 2.4 (bien que des hacks soient possibles).
  <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"
     >
Copier après la connexion
Copier après la connexion
Copier après la connexion

Remarque : Si vous utilisez Servlet 3.0 ou supérieur, utilisez http://xmlns.jcp au lieu de http://java.sun.com dans tout l'extrait XML ci-dessus. Domaine d'espace de noms .org.

JSP 2.x vers JSP 2.x

Si vous utilisez JSP 2. En gros, vous n'avez rien d'autre à changer. Mise à niveau progressive

Si vous utilisez déjà un modèle d'URL de suffixe (tel que

.jsf) pour FacesServlet et que vous souhaitez

utiliser simplement

, FacesServlet recherche d'abord Fichiers .xhtml et s'ils n'existent pas, *.jsp C'est une bonne idée de penser à analyser vos fichiers. Cela permet une conversion progressive de JSP vers Facelets sans changer les URL.

Cependant, si vous utilisez un modèle d'URL de préfixe (par exemple /faces/) et que vous souhaitez passer de JSP à Facelets par étapes, remplacez-le par .jsf et remplacez éventuellement les liens Tous les liens existants dans le fichier La page JSP doit également être modifiée.

Veuillez noter que la nouvelle navigation implicite fournie par JSF 2.0 ne recherche pas l'existence du fichier et navigue quand même vers result.xhtml. Donc, si vous passez de .jsp ou à .jsp, vous devez toujours l'inclure dans l'ID de vue à la manière JSF 1.x.

Facelets 1.x à Facelets 2.0

J'utilise Facelets 1.x comme technologie de visualisation et Facelets 2.0<🎜 est livré avec JSF 2.0 >. Si vous souhaitez l'utiliser, vous devez suivre les étapes supplémentaires suivantes :

    Supprimez le JAR Facelets 1.x de /WEB-INF/lib.
  • Facelets 1.x Supprimez FaceletViewHandler de faces-config.xml.
  • Si vous disposez d'une implémentation FaceletViewHandler personnalisée, vous devez la mettre à jour pour étendre ViewHandlerWrapper.
  • Bien que cela soit inutile, à des fins de nettoyage, supprimez les valeurs liées à Facelets 1.x (par exemple, la valeur javax.faces.DEFAULT_SUFFIX est *.xhtml) de web.xml . C'est déjà la valeur par défaut dans Facelets 2.0.
  • Mettez à jour la déclaration racine de votre bibliothèque de balises Facelet existante XML pour qu'elle soit conforme à 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">
    Copier après la connexion
    Copier après la connexion
    Copier après la connexion
    Remarque : Si vous utilisez JSF 2.2 ou une version ultérieure, utilisez http://xmlns.jcp au lieu de http://java.sun.com dans tout l'extrait XML ci-dessus. Domaine d'espace de noms .org.

    Ceux-ci sont fondamentalement suffisants.

    JSP 2.x vers Facelets 2.0

    Nous utilisons

    JSP 2.x comme technologie d'affichage et nous passerons bientôt à Facelets 2.0 Si vous le souhaitez, vous devrez apporter de nombreuses modifications avant de publier votre site. Nous modifions fondamentalement la technique d'affichage ici.

    Modifications de la page maître

    Le modèle JSP de base suivant doit être modifié dans toutes les pages maîtres.

      <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"
         >
    Copier après la connexion
    Copier après la connexion
    Copier après la connexion
    Changez pour le modèle Facelets de base suivant.

      <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">
    Copier après la connexion
    Copier après la connexion
    Remarque : Si vous utilisez JSF 2.2 ou une version ultérieure, utilisez le nom http://xmlns.jcp.org au lieu de http://java.sun.com dans l'extrait XHTML ci-dessus. domaine spatial.

    Inclure les modifications de page

    Si vos pages JSP existantes sont bien conçues, il n'y aura pas de scriptlet lignes de code et la seule balise spécifique à JSP sera Ils doivent être remplacés par :

      <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">
    Copier après la connexion
    Copier après la connexion
    Copier après la connexion

    Modifiez comme suit.

      <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"
         >
    Copier après la connexion
    Copier après la connexion
    Copier après la connexion

    Modèle de page d'inclusion JSP de base...

      <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">
    Copier après la connexion
    Copier après la connexion

    ... doit être remplacé par le modèle de page d'inclusion de Facelets de base suivant.

    <%@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>
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal