JSF 2.0 Hallo Weltbeispiel

JSF 2.0 Hallo Weltbeispiel

In diesem Tutorial zeigen wir Ihnen, wie Sie ein JavaServer Faces (JSF) 2.0 Hallo Welt-Beispiel entwickeln. Es zeigt eine Liste von JSF 2.0-Abhängigkeiten, grundlegenden Anmerkungen und Konfigurationen.

Projektumgebung

Dieses JSF 2.0-Beispiel wurde mit den folgenden Tools und Technologien erstellt

  1. JSF 2.1.7

  2. Maven 3

  3. Eclipse 3.6

  4. JDK 1.6

  5. Tomcat 6.0.26

Überprüfen Sie zunächst die endgültige Projektstruktur, falls Sie sich nicht sicher sind, wo die entsprechenden Dateien oder Ordner später erstellt werden sollen.

jsf2-hello-world-example

1. JSF 2.0-Abhängigkeiten

Maven central repository has the JSF version up to 1.2 only, to get the *JSF 2.0 müssen Sie möglicherweise vonJava.net repository herunterladen. *
Das zentrale Maven-Repository wird in der JSF-Bibliothek auf 2.1.7 aktualisiert. Das vorherige Java.net-Repository wird nicht mehr benötigt.

For Java EE Application Server like Glassfish
In den meisten Java EE-Anwendungsservern istbuild-in support for JSF 2.0 vorhanden, sodass Sie die einzelne JSF-API für Entwicklungszwecke herunterladen müssen.

...

  
    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
Dies ist etwas mühsam. Sie müssen die folgenden Abhängigkeiten herunterladen.

Datei: 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
Weitere Informationen zu den JSF 2.0-Abhängigkeiten finden Sie inofficial JSF 2.0 release note.

Warning
el-ri.jar ist eine mögliche Abhängigkeit im Tomcat-Servlet-Container, auch wenn dies nicht im Versionshinweis angegeben ist. Sie benötigen diese Bibliothek jedoch, um das Problem „http: // www. example.com/jsf2/jsf-2-0-tomcat-it-appears-the-jsp-version-of-the-container-is-older-than-2-1/[JSP-Version des Containers ist älter als 2.1 …]" Fehlermeldung.

Updated – 21-10-2010
Dieses "el-ri.jar" ist zu alt. Es wird empfohlen, das neueste "el-impl-2.2.jar" vonJava.net zu verwenden

     
      org.glassfish.web
      el-impl
      2.2
     

Updated – 25-07-2012
Diese Abhängigkeit vonel-ri.jarist in Tomcat 7 nicht mehr erforderlich.

2. JSF 2.0 Managed Bean

Eine von Java Bean oder JSF verwaltete Bean mit einer Namenseigenschaft zum Speichern von Benutzerdaten. In JSF bedeutet Managed Bean, dass auf diese Java-Klasse oder Bean über eine JSF-Seite zugegriffen werden kann.

Verwenden Sie in JSF 2.0 die Annotation@ManagedBean, um anzugeben, dass es sich um eine verwaltete Bean handelt.
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
In JSF 1.x mussten Sie Beans infaces-config.xml deklarieren, dies ist jedoch in JSF 2.0 nicht mehr erforderlich.

3. JSF 2.0-Seiten

In JSF 2.0 wird empfohlen, eine JSF-Seite inXHTML file format zu erstellen, einer Datei mit der Erweiterung .xhtml.

Siehe die folgenden zwei JSF 2.0-Seiten:

Note
Um die JSF 2.0-Komponenten oder -Funktionen zu verwenden, deklarieren Sie einfach dieJSF namespace oben auf der Seite.

File : hello.xhtml - Rendert ein JSF-Textfeld und verknüpft es mit der Eigenschaft "helloBean" (JSF-verwaltete Bean), "name" sowie einer Schaltfläche zum Anzeigen von "welcome.xhtml". s ”-Seite, wenn darauf geklickt wird.




    
        JSF 2.0 Hello World
    
    
        

JSF 2.0 Hello World Example - hello.xhtml

Note
In JSF 1.x mussten Sie "navigation rule" in "faces-config.xml" deklarieren, um anzugeben, welche Seite angezeigt werden soll, wenn auf die Schaltfläche geklickt wird. In JSF 2.0 können Sie den Seitennamen direkt in das Attribut "action" der Schaltfläche einfügen. Für eine einfache Navigation ist dies mehr als ausreichend. Für eine komplexe Navigation wird jedoch empfohlen, die "navigation rule" in "faces-config.xml" zu verwenden.

File : welcome.xhtml - Zeigt den übermittelten Textfeldwert an.




    
        JSF 2.0 Hello World
    
    
        

JSF 2.0 Hello World Example - welcome.xhtml

Welcome #{helloBean.name}

Die\{…} geben an, dass diesJSF expression language ist. In diesem Fall\{helloBean.name}. Wenn die Seite gesendet wird, findet JSF die "helloBean" und legt den Wert für das übermittelte Textfeld über fest diesetName() Methode. Wenn die Seite vonwelcome.xhtmlangezeigt wird, findet JSF dieselbe Sitzung "helloBean" erneut und zeigt den Namenseigenschaftswert über die MethodegetName()an.

4. JSF 2.0 Serlvet-Konfiguration

Wie bei allen anderen Standard-Webframeworks müssen Sie JSF-Inhalte in der Dateiweb.xmlkonfigurieren.

Datei: 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
    

Definieren Sie eine Zuordnung "javax.faces.webapp.FacesServlet" und ordnen Sie diese bekannten JSF-Dateierweiterungen zu (/faces/, .jsf,.xhtml*,.faces *).

In diesem Fall verweisen die folgenden 4 URLs auf die gleichenhello.xhtml.

In der JSF 2.0-Entwicklung wird empfohlen, "javax.faces.PROJECT_STAGE" auf "Development" zu setzen. Es enthält viele nützliche Debugging-Informationen, mit denen Sie die Fehler leicht nachverfolgen können. Ändern Sie es für die Bereitstellung einfach in "Production". Sie möchten einfach nicht, dass Ihr Kunde diese lästigen Debugging-Informationen ansieht :).

5. Demo

Ein langer Artikel endet mit einer Projektdemo :)

jsf2-hello-world-example-1

Eine einfache JSF-Seite mit einem Textfeld und einer Schaltfläche.

jsf2-hello-world-example-2

Wenn Sie auf die Schaltfläche klicken, wird der übermittelte Textfeldwert angezeigt.

Quellcode herunterladen

Laden Sie es herunter (Beispiel v2.1.7) -JSF2.0-hello-world-example-2.1.7.zip (8 KB)

Laden Sie es herunter (altes Beispiel für v2.1.0-b03) -JSF-2-Hello-World-Example-2.1.0-b03.zip (8 KB)