Beispiel für eine JSF 2-Platzhalter-Navigationsregel

In JSF können Sie verwenden Platzhalter im from-view-id Element einer Navigationsregel, d. h. die Regel gilt für alle Seiten, die mit dem Präfix beginnen /somePrefix. Nur eine einzige

ist zulässig und muss am Ende der ID-Zeichenfolge stehen. Wenn es mehrere übereinstimmende Platzhalterregeln gibt, wird die längste Übereinstimmung verwendet. Die Verwendung von Platzhaltern ist in der Regel eine Variante, sodass sie für die Ausführung derselben Funktionalität aus verschiedenen Ansichten verwendet werden können, die möglicherweise auf die Ansichten der Anwendung verteilt sind. Ausloggen ist die häufigste Verwendung für Platzhalter, d Abmeldeaktion die sich in der Kopfzeile, in der Fußzeile oder in einem Popup-Fenster befinden kann, sollte die Aktion dazu führen, dass Sie sich von der gesamten Anwendung abmelden, und höchstwahrscheinlich auch von der gesamten Anwendung Anmeldung

Bildschirm angesehen wurde.

Die Verwendung der Platzhalter in Verbindung mit dem Ergebnis wurde verwendet, um das obige Konzept anwendbar zu machen. Dieses Tutorial erklärt die Navigation mit dem Platzhalter in JSF 2 anhand einer einfachen Beispielanwendung. Wenn Sie Fragen haben, schreiben Sie diese bitte in den Kommentarbereich.

  • Lesen Sie auch:
  • JSF 2-Tutorials
  • JSF-Tutorials

Einführung in JSF

1. Verwaltete Bohne

package net.javabeat.jsf;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class IndexBean {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String login(){
		if(this.username.equalsIgnoreCase("javabeat") &&
				this.password.equals("javabeat")){
			return "welcome";
		}
		else {
			FacesContext.getCurrentInstance().
                                     addMessage(null,
                                 new FacesMessage("You're username or password isn't valid"));
			return "login";
		}

	}
}

IndexBean.java

2. Die Ansichten

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
	<h:outputScript library="javax.faces" name="jsf.js"/>
</h:head>
<h:body>
	<f:view>
		<h1>JavaBeat JSF 2.2 Examples</h1>
		<h2>JSF2 Dynamic Navigation - Wildcards Example</h2>
		<h:form prependId="false">
			<h:messages globalOnly="true" style="color:red"></h:messages>
			<h:panelGrid columns="2">
				<h:outputText value="Enter Username: "/>
				<h:inputText value="#{indexBean.username}"/>
				<h:outputText value="Enter Password: "/>
				<h:inputText value="#{indexBean.password}"/>
			</h:panelGrid>
			<h:commandButton value="Login" action="#{indexBean.login}"></h:commandButton>
		</h:form>
	</f:view>
</h:body>
</html>

login.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
	<f:view>
		<h:form>
			<h1>JavaBeat JSF 2.2 Examples</h1>
			<h2>JSF2 Dynamic Navigation - Wildcards Example</h2>
			<h:outputText value="Welcome Mr.#{indexBean.username}"/>
			<br/>
			<h:commandLink value="Logout" action="logout"/>
			#{' '}
			<h:commandLink value="Expenses" action="expensesView"/>
		</h:form>
	</f:view>
</html>

willkommen.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
	<f:view>
		<h:form>
			<h1>JavaBeat JSF 2.2 Examples</h1>
			<h2>JSF2 Dynamic Navigation - Wildcards Example</h2>
			<h:panelGrid columns="2">
				<h:outputText value="Oil"/>
				<h:outputText value="20 USD"/>
				<h:outputText value="House"/>
				<h:outputText value="50 USD"/>
				<h:outputText value="Schools"/>
				<h:outputText value="200 USD"/>
			</h:panelGrid>
			<br/>
			<h:commandLink value="logout" action="logout"/>
		</h:form>
	</f:view>
</html>

SpesenView.xhtml

3. JSF Faces-Konfigurationsdatei

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
				http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
	version="2.2">
<application>
	<resource-bundle>
		<base-name>net.javabeat.jsf.application</base-name>
		<var>msg</var>
	</resource-bundle>
</application>
<navigation-rule>
	<from-view-id>/*</from-view-id>
	<navigation-case>
		<from-outcome>logout</from-outcome>
		<to-view-id>login</to-view-id>
	</navigation-case>
</navigation-rule>
</faces-config>

faces-config.xml

4. Der Bereitstellungsdeskriptor

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5" metadata-complete="true">
	<context-param>
		<description>State saving method: 'client' or 'server'
						(=default). See JSF Specification 2.5.2
		</description>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>client</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.application.CONFIG_FILES</param-name>
		<param-value>/WEB-INF/faces-config.xml</param-value>
	</context-param>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.xhtml</url-pattern>
	</servlet-mapping>
	<listener>
		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
	</listener>
</web-app>

web.xml

5. JSF 2 Wildcards-Navigationsdemo

Beispiel 1 für die JSF 2-Platzhalternavigation

  • Beispiel 1 für die JSF 2-Platzhalternavigation
  • Der Benutzer hat den Benutzernamen und das Passwort eingegeben, um den Anmeldebildschirm zu durchlaufen.

Beispiel 2 für die JSF 2-Platzhalternavigation

  • Beispiel 2 für die JSF 2-Platzhalternavigation
  • Erfolgreiche Anmeldung bedeutet, dass die Willkommensseite angezeigt wird.
  • Dem Benutzer werden zwei verschiedene Optionen angezeigt. Die erste ist eine Abmeldung, die den Benutzer wieder zum Anmeldebildschirm führen soll – wie in der faces-config.xml definiert –, wo er den Benutzernamen und das Passwort erneut eingeben kann.

JSF 2 Wildacrds-Navigationsbeispiel 4

  • JSF 2 Wildacrds-Navigationsbeispiel 4

Beispiel 3 für die JSF 2-Platzhalternavigation

  • Beispiel 3 für die JSF 2-Platzhalternavigation

Der Anmeldebildschirm sollte angezeigt werden, sobald sich der Benutzer abgemeldet hat.(wpdm_file id=41)

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen