JSF + Scala-Integration

Scala ist eine beliebte Programmiersprache für die Java Virtual Machine (JVM). Es ist wie Java stark typisiert und objektorientiert, unterstützt aber auch funktionale Programmierung. Viele Entwickler fühlen sich davon angezogen Scala weil für gängige Konstrukte wie Eigenschaften weniger Grundbausteine ​​erforderlich sind. Scala unterstützt den Aufruf eines Codes in der Java-Bibliothek daraus, sodass es möglich ist, die JavaServer Faces (JSF Framework) in Scala zu integrieren. In diesem Tutorial werden Sie das erstellte JSF-Maven-Projekt installieren und konfigurieren, um die Verwendung von Scala zu unterstützen.

Erforderliche Tools für die JSF- und Scala-Integration

  • Eclipse IDE 4.3 (Kepler)
  • Tomcat Servlet Runner (7.0.35)
  • Scala 2.10.4
  • JSF 2.0
  • 1. Installieren Sie Scala IDE für Eclipse

    Wir werden Scala in der installierten Eclipse-IDE installieren. Mithilfe des Scala-Downloads Verknüpfung Sie können das installieren Scala IDE für Eclipse zum Aktivieren der Scala-Tools, des Compilers und der Perspektive. Die für die Installation des Scala erforderlichen Schritte sind wie folgt:

    • Öffnen Sie die Eclipse-IDE
    • Wählen Sie im Menü „Hilfe“ die Option „ Neue Software installieren.
    • Innen Arbeiten mit Geben Sie dann den oben genannten Scala-Download-Link ein.
    • Wählen Sie aus der abgerufenen Liste aus Scala-IDE für Eclipse.

    Installieren Sie Scala IDE für Eclipse

    2. Scala Nature hinzufügen

    Wenn Sie versucht haben, irgendeine Art von zu erstellen Scala Dateien (Scala-Klasse, Objekte usw.) werden Sie sicherlich mit einer Komplexität konfrontiert, da das erstellte JSF-Maven-Projekt, das in Eclipse importiert wurde, die Scala-Natur nicht unterstützt.

    Um die Scala-Natur hinzuzufügen, müssen Sie die folgenden Schritte ausführen:

    • Klicken Sie mit der rechten Maustaste auf das erstellte JSF-Projekt, das in Ihre Eclipse-IDE importiert wurde.
    • Aus Konfigurieren Wählen Sie die Option Fügen Sie Scala Nature hinzu.
    • Wählen Sie im Menü „Projekt“ die Option „Reinigen“.
    • Für eine bessere Vertrautheit mit der Verwendung von Scala steht Ihnen eine neue Scala-Perspektive zur Verfügung. Wählen Sie im Menü „Fenster“ die Option „Perspektive öffnen“ und wählen Sie Scala. Wenn Sie diese Perspektive nicht anzeigen können, wählen Sie „Andere“ und dann erneut „Scala“.

    Wenn Sie alle oben genannten Schritte ausführen, können Sie ganz einfach Scala-Assets erstellen.

    JSF 2 Scale Adding Scale Nature

    JSF 2 Scala-Perspektive

    3. Scala-Bibliothek

    Stellen Sie sicher, dass die Scala-Bibliothek dafür hinzugefügt wird, sobald Sie Ihrem Projekt eine Scala-Natur hinzugefügt haben. Schauen Sie sich einfach Ihre Projektstruktur an und neben Bibliotheken wie z Maven-Abhängigkeiten Und JRE-Systembibliothek Das solltest du sehen Scala-Bibliothek (Version).

    Wenn Sie es nicht gesehen haben, fügen Sie es mit den folgenden Schritten hinzu:

    • Klicken Sie mit der rechten Maustaste auf Ihr Projekt.
    • Wählen Sie im Scala-Menü die Option aus Fügen Sie die Scala-Bibliothek hinzu, um den Pfad zu erstellen. (Jemand könnte fragen: Wenn Sie einen Maven verwenden, warum fügen Sie diese Bibliotheken nicht zu Maven-Abhängigkeiten hinzu?)
    • Für diejenigen, die sich für Maven und nur Maven interessieren, fügen Sie die Scala-Abhängigkeit zu Ihrem hinzu pom.xml.

    Scala Maven-Abhängigkeit

    <dependency>
    	<groupId>org.scala-lang</groupId>
    	<artifactId>scala-library</artifactId>
    	<version>2.10.4</version>
    </dependency>
    

    Entweder verwenden Sie die von Eclipse hinzugefügte Bibliothek oder die vom Maven hinzugefügte Bibliothek, Sie treffen den richtigen Weg und Ihre Anwendung sollte reibungslos laufen.

    JSF 2 Scala fügt Bibliothek hinzu

    JSF 2 Scala-Bibliotheken

    4. Scala-Klasse erstellen (Managed Bean)

    Um eine Scala-Klasse zu erstellen, die später als verwaltete Bean in Betracht gezogen wird, müssen Sie die folgenden Schritte ausführen:

    • Klicken Sie mit der rechten Maustaste auf das bereits erstellte Paket und wählen Sie Neu.
    • Wählen Sie im Untermenü „Neu“ aus Scala-Klasse.
    • Benennen Sie Ihre neu erstellte Scala-Klasse als IndexBean.
    • Ich fange an, eine Scala-Klasse zu schreiben.

    Ihre Klasse sollte wie folgt aussehen:
    IndexBean.scala

    package net.javabeat.jsf
    
    import javax.faces.bean.ManagedBean
    import scala.beans.BeanProperty
    
    @ManagedBean
    class IndexBean {
    	@BeanProperty
    	var name = "JavaBeat !";
    	@BeanProperty
    	var message = "Hello";
    
    	def navigate(): String ={
    	  return "anonymousView";
    	}
    }
    
    • Beachten Sie die Verwendung von javax.faces.bean.ManagedBean Annotation zum Kommentieren einer Scala-Klasse
    • Scala bietet Ihnen eine andere Art von Anmerkungen namens @BeanProperty die die Eigenschaften der Scala-Klasse mit Anmerkungen versehen.
    • Die IndexBean-Scala-Klasse definiert zwei Eigenschaften und eine benannte Methode navigieren Dabei werden keine Parameter berücksichtigt und eine Zeichenfolge zurückgegeben.

    JSF 2 Scala-Klasse hinzufügen

    5. 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">
    	<f:view>
    		<h:form prependId="false">
    			<h1>JavaBeat JSF 2.2 Examples</h1>
    			<h2>JSF2 &amp;amp; Scala</h2>
    			<br/>
    			<h:outputText value="#{indexBean.message}"></h:outputText>
    			<h:outputText value="#{indexBean.name}"></h:outputText>
    			<br/>
    			<h:commandButton value="Navigate Using Scala" action="#{indexBean.navigate}"/>
    		</h:form>
    	</f:view>
    </html>
    

    anonymView.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 prependId="false">
    			<h1>JavaBeat JSF 2.2 Examples</h1>
    			<h2>JSF2 &amp;amp; Scala</h2>
    			<br/>
    			<h3>Anonymous View</h3>
    		</h:form>
    </html>
    

    6. Faces-Konfigurationsdatei

    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>
    

    7. Der Bereitstellungsdeskriptor

    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>server</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>
    

    8. JSF + Scala-Integrationsdemo

    Die folgenden Schnappschüsse zeigen Ihnen eine laufende Demonstration einer JSF-Anwendung, die eine Scala-Programmiersprache verwendet.

    JSF 2 Scala-Beispiel 1

    JSF 2 Scala-Beispiel 2

    • Sie haben die Darstellung der Eigenschaften der Scala-Klasse (Managed Bean) erreicht.
    • Sie sind mithilfe der Aktionsmethode der Scala-Klasse (Managed Bean) zu einer anderen Ansicht navigiert.

    (wpdm_file id=56)

    Kommentar verfassen

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

    Nach oben scrollen