JSF 2-Nachricht und Nachrichtenbeispiel

Der Und kann zur Anzeige von Fehlern, schwerwiegenden Fehlern, Warnungen und Informationsmeldungen für eine einzelne Komponente bzw. für die gesamte aktuelle Ansicht verwendet werden. Wenn es darum geht, eine JSF-Seite zu entwickeln, kommt es vor, dass eine Komponente/Ansicht eine Meldung enthält, die den Benutzer über fehlende oder falsche Daten informiert. Diese müssen bereitgestellt/korrigiert werden, um sicherzustellen, dass die Geschäftslogik für Ihre verwalteten Beans reibungslos und reibungslos ausgeführt werden kann irgendwelche Probleme.

Die Komponente „Nachricht/Nachrichten“ bietet dem Entwickler die Möglichkeit, den gewünschten Stil für die verschiedenen Arten von Nachrichten bereitzustellensodass die Stile für verschiedene Nachrichten eine tiefe Identifizierung ermöglichen können, bei der der Benutzer zwischen solchen unterscheiden kann, die nur Informationen bereitstellen, und solchen, die nicht weitermachen könnten, wenn sie nicht festgelegt würden.

Der Schweregrad, der durch das Hinzufügen einer Gesichtsmeldung zur Komponente/Ansicht durchlaufen wurde, bestimmt den Typ der Meldungen, ob es sich um einen Fehler oder nur um eine Information handelt. Jede Nachricht/Nachrichten enthält beide Arten von Informationen; Detail und Zusammenfassung, wobei der Entwickler kontrolliert, ob er nur das Detail oder nur die Zusammenfassung oder beides rendern möchte. Ein weiterhin wichtiges Problem besteht darin, dass bei der Verwendung der Nachricht(en) die gebündelten Nachrichten zur Lokalisierung von Komponenten-/Ansichtsnachrichten herangezogen werden.

Lesen Sie auch:

  • JSF 2-Tutorials
  • JSF-Tutorials
  • Einführung in JSF

In diesem Tutorial wird erläutert, wie die Meldung und die Meldungen zum Anzeigen der Meldungen für eine bestimmte Komponente oder für die aktuelle Ansicht richtig verwendet werden.

1. Verwaltete Bohne

IndexBean.java

package net.javabeat.jsf;

import java.util.Locale;

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 locale = "en";
	private String message = "";
	private String email = "";

	public String getLocale() {
		return locale;
	}

	public void setLocale(String locale) {
		this.locale = locale;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String changeLocale(String locale){
		// Change the locale attribute
		this.locale = locale;
		// Change the locale of the view
		FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(this.locale));
		return "";
	}

	public String send(){
		if(this.message.equals("")){
			// Bring the error message using the Faces Context
			String errorMessage = FacesContext.getCurrentInstance().getApplication().
					getResourceBundle(FacesContext.getCurrentInstance(),"msg").
					getString("message_missing");
			// Add View Faces Message
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
			errorMessage, errorMessage);
			// Add the message into context for a specific component
			FacesContext.getCurrentInstance().addMessage("form:message", message);
		}

		if(this.email.equals("")){
			// Bring the error message using the Faces Context
			String errorMessage = FacesContext.getCurrentInstance().getApplication().
					getResourceBundle(FacesContext.getCurrentInstance(),"msg").
                                          getString("email_missing");
			// Add View Faces Message
			// Cause the application doesn't functional if you've got missing the email
			// The severity case is Error or fatal error
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,errorMessage,
                                         errorMessage);
			// Add the message into context for a specific component
			FacesContext.getCurrentInstance().addMessage("form:email", message);
			// Return empty token for navigation handler
			return "";
		}

		// Return confirmation message that the message has been sent

		// Bring the information message using the Faces Context
		String confirmMessage = FacesContext.getCurrentInstance().getApplication().
				getResourceBundle(FacesContext.getCurrentInstance(),"msg").
                                  getString("email_sent");
		// Add View Faces Message
		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,confirmMessage, confirmMessage);
		// The component id is null, so this message is considered as a view message
		FacesContext.getCurrentInstance().addMessage(null, message);
		// Return empty token for navigation handler
		return "";
	}
}

2. Die Aussicht

index.xhtml

<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"
	xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
	<title><h:outputText value="#{msg.title}"/></title>
	<style>
		.err {
			color: red;
		}
		.warn {
			color: yellow;
		}
		.info {
			color: blue;
		}
	</style>
</h:head>
<h:body>
	<h:form id="form">
	<div style="border: 1">
		<span> Global Message Area:</span>
		<h:messages globalOnly="true" errorClass="err" warnClass="warn" infoClass="info"></h:messages>
		<h:messages globalOnly="false" errorClass="err" warnClass="warn" infoClass="info"></h:messages>
	</div>
	<f:loadBundle var="messages" basename="net.javabeat.jsf.messages"></f:loadBundle>
		<h1>
			<h:outputText value="#{msg.head}" />
		</h1>
		<h2>
			<h:outputText value="#{msg.example_name}" />
		</h2>
		<h:outputText value="#{msg.hello_message}"/>
		<br/>
		<br/>
		<h:outputText value="#{messages.inlineLoad}"/>
		<br/>
		<br/>
		<h:panelGrid columns="3">
			<h:outputText value="#{msg.enter_message}"/>
			<h:inputText id="message" value="#{indexBean.message}"/>
			<h:message for="message" errorClass="err" warnClass="warn" infoClass="info"></h:message>
			<h:outputText value="#{msg.enter_email}"/>
			<h:inputText id="email" value="#{indexBean.email}"/>
			<h:message for="email" errorClass="err" warnClass="warn" infoClass="info"></h:message>
		</h:panelGrid>
		<h:commandButton value="Send" action="#{indexBean.send}"/>
		<h:commandButton value="#{messages.german}"
			action="#{indexBean.changeLocale('de')}"
				rendered="#{indexBean.locale == 'en'}"/>
		<h:commandButton value="#{messages.english}"
			action="#{indexBean.changeLocale('en')}"
				rendered="#{indexBean.locale == 'de'}"/>
	</h:form>
</h:body>
</html>

3. faces-config.xml

faces-config.xml

<?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>
</faces-config>

4. Die Verzeichnisstruktur

JSF 2-Nachrichtenbeispiel 1

5. JSF 2-Nachrichten-Demo

Die folgenden Schnappschüsse zeigen Ihnen ein vollständiges Szenario der Verwendung der Nachrichten, entweder als Nachrichtenkomponente für komponentenbasierte Nachrichten oder als Nachrichtenkomponente für ansichtsbasierte Nachrichten.
Das entwickelte Szenario hat die Locales (Englisch/Deutsch) unterstützt, um das Konzept der Lokalisierung der von ihnen konsumierten Nachrichten zu erläutern. Das vorgeschlagene Szenario enthält die folgenden Punkte, die Ihre Aufmerksamkeit erregen sollten:

  • Die für die Anzeige der Fehler-/Info-/Warnmeldungen für eine bestimmte Komponente in der Ansicht verwendete Nachrichtenkomponente.
  • Die für die Anzeige der Fehler-/Info-/Warnmeldungen verwendete Nachrichtenkomponente für die gesamte Ansicht.
  • Die Nachrichtenkomponente stellt das Attribut bereit (globalOnly), die verwendet wird, um zu bestimmen, ob die Nachrichten, die im Gesichtskontext für eine bestimmte Komponente hinzugefügt werden, angezeigt werden oder nicht.
  • Die Stile err, warn und info werden von der JSF-Message/Messages-Komponente basierend auf dem verwendeten Schweregrad verwendet.

JSF 2-Nachrichtenbeispiel 2

JSF 2-Nachrichtenbeispiel 3

JSF 2-Nachrichtenbeispiel 4

JSF 2-Nachrichtenbeispiel 5

JSF 2-Nachrichtenbeispiel 6

JSF 2-Nachrichtenbeispiel 7

(wpdm_file id=21)

Kommentar verfassen

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

Nach oben scrollen