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
JSF 2.1.7
Maven 3
Eclipse 3.6
JDK 1.6
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.
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.
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.webel-impl2.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.
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 :).