Exemple JSF 2.0 hello world

Exemple de bonjour JSF 2.0

Dans ce tutoriel, nous allons vous montrer comment développer un exemple de bonjour JavaServer Faces (JSF) 2.0, qui montre la liste des dépendances JSF 2.0, des annotations de base et des configurations.

Environnement du projet

Cet exemple JSF 2.0 est construit avec les outils et technologies suivants

  1. JSF 2.1.7

  2. Maven 3

  3. Eclipse 3.6

  4. JDK 1.6

  5. Tomcat 6.0.26

Tout d'abord, passez en revue la structure finale du projet, au cas où vous ne savez pas où créer les fichiers ou dossiers correspondants ultérieurement.

jsf2-hello-world-example

1. Dépendances JSF 2.0

Maven central repository has the JSF version up to 1.2 only, to get the *JSF 2.0, vous devrez peut-être télécharger à partir deJava.net repository. *
Le référentiel central maven est mis à jour la bibliothèque JSF vers la version 2.1.7. Le référentiel Java.net précédent n'est plus requis.

For Java EE Application Server like Glassfish
Dans la plupart des serveurs d'applications Java EE, il abuild-in support for JSF 2.0, vous devez donc télécharger l'API JSF unique à des fins de développement.

...

  
    javax.faces
    jsf-api
    2.0
    provided
  


  
    java.net.m2
    java.net m2 repo
    http://download.java.net/maven/2
  

...

For simple servlet container like Tomcat
C'est un peu gênant, vous devez télécharger les dépendances suivantes.

Fichier: pom.xml


    4.0.0
    com.example.common
    JavaServerFaces
    war
    1.0-SNAPSHOT
    JavaServerFaces Maven Webapp
    http://maven.apache.org

    

        
            com.sun.faces
            jsf-api
            2.1.7
        
        
            com.sun.faces
            jsf-impl
            2.1.7
        

        
            javax.servlet
            jstl
            1.2
        

        
            javax.servlet
            servlet-api
            2.5
        

        
            javax.servlet.jsp
            jsp-api
            2.1
        
                
        
            com.sun.el
            el-ri
            1.0
        

    

    
        JavaServerFaces

        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.3.1
                
                    1.6
                    1.6
                
            
        
    

Note
Pour plus de détails sur les dépendances JSF 2.0, reportez-vous à ceofficial JSF 2.0 release note.

Warning
el-ri.jar est une dépendance défendable dans le conteneur de servlet Tomcat, même si cela n'est pas indiqué dans la note de publication, mais vous avez besoin de cette bibliothèque pour résoudre le problème «http: // www. example.com/jsf2/jsf-2-0-tomcat-it-appears-the-jsp-version-of-the-container-is-older-than-2-1/[La version JSP du conteneur est antérieure à 2.1 …]" Message d'erreur.

Updated – 21-10-2010
Ce "el-ri.jar" est trop ancien, il est recommandé d'utiliser le dernier "el-impl-2.2.jar", deJava.net

     
      org.glassfish.web
      el-impl
      2.2
     

Updated – 25-07-2012
Cette dépendanceel-ri.jar n'est plus requise dans Tomcat 7.

2. Bean géré JSF 2.0

Un bean Java ou un bean géré JSF, avec une propriété de nom pour stocker les données utilisateur. Dans JSF, le bean géré signifie que cette classe Java ou ce bean est accessible à partir d'une page JSF.

Dans JSF 2.0, utilisez l'annotation@ManagedBean pour indiquer qu'il s'agit d'un bean géré.
HelloBean.java

package com.example.common;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Note
Dans JSF 1.x, vous deviez déclarer des beans dans lesfaces-config.xml, mais ce n'est plus nécessaire dans JSF 2.0.

3. Pages JSF 2.0

Dans JSF 2.0, il est recommandé de créer une page JSF dansXHTML file format, un fichier avec une extension .xhtml.

Voir les deux pages JSF 2.0 suivantes:

Note
Pour utiliser les composants ou fonctionnalités JSF 2.0, il suffit de déclarer lesJSF namespace en haut de la page.

File : hello.xhtml - Rend une zone de texte JSF et la liera avec le «helloBean» (bean géré JSF), la propriété «name», ainsi qu'un bouton pour afficher le «welcome.xhtml »lorsque l'utilisateur clique dessus.




    
        JSF 2.0 Hello World
    
    
        

JSF 2.0 Hello World Example - hello.xhtml

Note
Dans JSF 1.x, vous deviez déclarer les «navigation rule» dans «faces-config.xml», pour indiquer quelle page afficher lorsque le bouton est cliqué. Dans JSF 2.0, vous pouvez placer le nom de la page directement dans l’attribut «action» du bouton. Pour une navigation simple, c’est plus que suffisant, mais pour une navigation complexe, il est toujours conseillé d’utiliser les «navigation rule» dans «faces-config.xml».

File : welcome.xhtml - Affiche la valeur de la zone de texte soumise.




    
        JSF 2.0 Hello World
    
    
        

JSF 2.0 Hello World Example - welcome.xhtml

Welcome #{helloBean.name}

Les\{…} indiquent qu'il s'agit d'unJSF expression language, dans ce cas,\{helloBean.name}, lorsque la page est soumise, JSF trouvera les «helloBean» et définira la valeur de la zone de texte soumise via la méthodesetName(). Lorsque la pagewelcome.xhtml est affichée, JSF retrouvera la même session «helloBean» et affichera la valeur de la propriété de nom via la méthodegetName().

4. Configuration JSF 2.0 Serlvet

Comme tout autre framework Web standard, vous devez configurer les éléments JSF dans le fichierweb.xml.

Fichier: web.xml



    JavaServerFaces

    
    
        javax.faces.PROJECT_STAGE
        Development
    

    
    
        faces/hello.xhtml
    

    
    
        Faces Servlet
        javax.faces.webapp.FacesServlet
        1
    

    
    
        Faces Servlet
        /faces/*
    
    
        Faces Servlet
        *.jsf
    
    
        Faces Servlet
        *.faces
    
    
        Faces Servlet
        *.xhtml
    

Définissez un mappage «javax.faces.webapp.FacesServlet» et mappez vers ces extensions de fichier JSF bien connues (/faces/, .jsf,.xhtml*,.faces *).

Dans ce cas, les 4 URL ci-dessous pointent vers les mêmeshello.xhtml.

Dans le développement JSF 2.0, il est recommandé de définir «javax.faces.PROJECT_STAGE» sur «Development», cela fournira de nombreuses informations de débogage utiles pour vous permettre de suivre facilement les bogues. Pour le déploiement, changez-le simplement en «Production», vous ne voulez tout simplement pas que votre client regarde ces informations de débogage ennuyeuses :).

5. Demo

Un long article se termine par une démo de projet :)

jsf2-hello-world-example-1

Une simple page JSF, avec une zone de texte et un bouton.

jsf2-hello-world-example-2

Lorsque le bouton est cliqué, affiche la valeur de la zone de texte soumise.

Télécharger le code source

Téléchargez-le (exemple v2.1.7) -JSF2.0-hello-world-example-2.1.7.zip (8 Ko)

Téléchargez-le (ancien exemple v2.1.0-b03) -JSF-2-Hello-World-Example-2.1.0-b03.zip (8 Ko)