Beispiel für eine JSF 2-Befehlsschaltfläche

Die h:commandButton-Komponente ist eine wichtige Komponente unter den von JSF bereitgestellten Komponenten. Diese Komponente stellt eine HTML-Senden-Schaltfläche dar, die einfach funktioniert . JSF 2 erweitert den h:commandButton, indem es dem Befehl ermöglicht, eine zugehörige Aktion aufzurufen, indem er Parameter dafür übergibt. Das Hauptattribut des h:commandButton ist ein Aktion Attribut, das a akzeptiert Methodenbindung Ausdruck für eine Backing-Bean-Aktion (Methode), die aufgerufen wird, wenn der Benutzer auf die Schaltfläche geklickt hat. Der Methodenbindungsausdruck hat die folgenden Rollen, um als richtige Aktion akzeptiert zu werden.

  • Die definierte Methode (Aktion) im Backing Bean sollte eine haben Modifikator für den öffentlichen Zugriff.
  • Die definierte Methode (Aktion) im Backing Bean sollte eine haben Zeichenfolge als zurückgegebener Typ. (Dieses String-Token wird vom JavaServer Faces Navigation Handler verbraucht).
  • Ab JSF 2.0 kann die definierte Methode Parameterwerte in der Methodensignatur akzeptieren. Diese Funktion ist nützlich, um Parameter für die Aktionen von Schaltflächen und Links bereitzustellen. Wenn eine Methodenreferenz ausgewertet wird, werden die Parameter ausgewertet und an die Methode übergeben.

h:commandButton und h:commandLink sind die Hauptkomponenten für die Navigation innerhalb einer JSF-Anwendung. Wenn auf eine Schaltfläche oder einen Link geklickt (aktiviert) wird, sendet eine POST-Anfrage die Formulardaten zurück an den Server und der Lebenszyklus des JSF-Frameworks wird gestartet. Der Hauptunterschied zwischen h:commandButton und h:commandLink besteht darin, dass letzterer einen vordefinierten Code am JavaScript-Attribut onclick bereitstellt

Lesen Sie auch:

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

1. Verwaltete Bohne

LoginBean.java

package net.javabeat.jsf;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class LoginBean {
	private String username = "";
	private String password = "";
	private String authority = "";

	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 getAuthority() {
		return authority;
	}
	public void setAuthority(String authority) {
		this.authority = authority;
	}
	public String login(String type){
		this.authority = type;
		if(this.username.isEmpty() == false && this.username.equalsIgnoreCase("Josha")
				&& this.password.isEmpty() == false && this.password.equals("Josha1@#$")){
			return "success";
		}
		return "failure";
	}
}

2. Die Ansichten

login.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">
<h:form>
	<h1>
		<h:outputText value="JavaBeat JSF 2.2 Examples" />
	</h1>
	<h2>
		<h:outputText value="CommandButton Example" />
	</h2>
	<table>
		<tr><td>Enter Your Username : </td><td><h:inputText id="username" value="#{loginBean.username}"/></td></tr>
		<tr><td>Enter Your Password : </td><td><h:inputSecret value="#{loginBean.password}"/></td></tr>
		<tr><td colspan="2"><h:commandButton value="Login" action="#{loginBean.login('Admin')}"/></td></tr>
	</table>
	<br/>
</h:form>
</html>

success.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">
<h:form>
	<h1>
		<h:outputText value="JavaBeat JSF 2.2 Examples" />
	</h1>
	<h2>
		<h:outputText value="CommandButton Example" />
	</h2>
	Welcome <h:outputText value="#{loginBean.username}"/>
	<br/>
	You're Logged in By <h:outputText value="#{loginBean.authority}"/> Authority
	<br/>
</h:form>
</html>

fail.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">
<h:form>
	<h1>
		<h:outputText value="JavaBeat JSF 2.2 Examples" />
	</h1>
	<h2>
		<h:outputText value="CommandButton Example" />
	</h2>
		Login Failure, Please Try Again !
	<br/>
</h:form>
</html>

3. Der Bereitstellungsdeskriptor (web.xml)

web.xml

<?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>

4. JSF 2 CommandButton-Demo

Die folgenden Schnappschüsse veranschaulichen die Verwendung von h:commandButton mit JSF 2, indem die durch h:commandButton dargestellte Aktion zum Senden eines Parameters verwendet wird, der die Art der Berechtigung bestimmt, mit der sich der Benutzer angemeldet hat. Der h:commandButton ist mit einem Navigationshandler verknüpft, sodass eine Navigation zu einer richtigen Ansicht erfolgt, falls der Anmeldevorgang erfolgreich war oder fehlgeschlagen ist.

JSF 2 CommandButton-Beispiel 1

JSF 2 CommandButton-Beispiel 2

JSF 2 CommandButton-Beispiel 3

(wpdm_file id=13)

Kommentar verfassen

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

Nach oben scrollen