JSF + Groovy-Integration

Groovy ist eine weitere beliebte Programmiersprache für Java virtuelle Maschine. Groovy ist dynamisch typisiert und Groovy-Code kann prägnanter sein als das entsprechende Java, da Sie Variablen- und Parametertypen weglassen können.

Fast jeder Java-Code ist legal, was den Einstieg in die Verwendung vereinfacht und erleichtert. Letztendlich ist die Verwendung von Groovy in JSF-Anwendungen nicht komplexer, und zwar aus einem Grund: Die Verwendung des Groovy-Compilers zum Kompilieren Ihres Groovy-Codes generiert eine .class-Datei. In JSF ist es egal, ob Sie Groovy zum Generieren verwenden.

Die JSF-Referenzimplementierung unterstützt Hot-Bereitstellung Ihres Groovy-Codes. Wenn Sie die Groovy-Quelldateien ändern, kompiliert die JSF-Implementierung diese automatisch neu und stellt die Klassendateien für die Webanwendung bereit.

In diesem Tutorial integrieren Sie Groovy mithilfe der Eclipse-IDE in die JavaServer Faces. In diesem Tutorial verwenden Sie das bereits erstellte JSF-Maven-Projekt.

Erforderliche Tools für die JSF + Groovy-Integration

  • Eclipse IDE 4.3 (Kepler)
  • Tomcat Servlet Runner (7.0.35)
  • Groovy 2.0.x
  • JSF 2.0

1. Installieren Sie das Groovy-Plugin für Eclipse

Mithilfe des Groovy-Download-Links können Sie das richtige Plugin für Ihr Eclipse auswählen. In unserem Fall müssen Sie jedoch den bereitgestellten Link in Betracht ziehen Kepler Ausführung. Die für die Installation von Groovy 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 den oben genannten Groovy-Download-Link ein.
  • Wählen Sie aus der abgerufenen Liste aus Groovy-Eclipse.

Groovy Eclipse IDE – Laden Sie das Groovy-Plugin herunter

2. Fügen Sie Groovy Nature hinzu

Wenn Sie versucht haben, irgendeine Art von zu erstellen Groovig Dateien (Groovy-Klasse, Projekt usw.) werden sicherlich komplexer, da Ihr importiertes Maven-Projekt Groovy von Natur aus nicht unterstützt.

Um Groovy 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 In ein Groovy-Projekt konvertieren.
  • Wählen Sie im Menü „Projekt“ die Option „Reinigen“.
  • Es gibt keine spezifische Perspektive für Groovy, da es als solche betrachtet wird Java-Projekt.

JSF 2 Groovy Natur hinzufügen

3. Groovy-Bibliothek

Stellen Sie sicher, dass, sobald Sie Ihrem Projekt einen groovigen Charakter hinzugefügt haben, auch die groovige Bibliothek dafür hinzugefügt wird. Schauen Sie sich einfach Ihre Projektstruktur an und neben Bibliotheken wie z Maven-Abhängigkeiten Und JRE-Systembibliothek Das solltest du sehen Groovige Bibliotheken & Groovy DSL-Unterstützung.

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 Grrovy-Menü die Option aus Fügen Sie die Groovy-Bibliothek hinzu, um den Pfad zu erstellen.

Aber für Entwickler, die sich auf die Verwendung von Maven konzentrieren, können Sie die folgende Abhängigkeit als obligatorisch betrachten.

Groovy Maven-Abhängigkeit

<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</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 Groovy Bibliothek hinzufügen

JSF 2 Groovy hat Bibliotheken hinzugefügt

4. Groovy-Klasse (Managed Bean)

Um eine Groovy-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 Groovy-Klasse.
  • Benennen Sie Ihre neu erstellte Groovy-Klasse als IndexBean.
  • Ich fange an, einen tollen Kurs zu schreiben.

Ihre Klasse sollte wie folgt aussehen:

IndexBean.groovy

package net.javabeat.jsf

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

@ManagedBean
@SessionScoped
class IndexBean implements GroovyObject{
private message = "Hello Mr. "; // Within groovy, you can omit the types
private userInput; // Within groovy, you can omit the types

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

public String getMessage(){
return this.message;
}

public void setUserInput(String userInput){
this.userInput = userInput;
}

public String getUserInput(){
return this.userInput;
}

public String navigate(){
return "anonymousView";
}
}
  • Beachten Sie die Verwendung von Eigenschaften ohne Tippfehler.
  • Beachten Sie die Verwendung von jsf2 @ManagedBean Anmerkung
  • Beachten Sie die Verwendung von jsf2 @SessionScoped Anmerkung
  • Die IndexBean-Groovy-Klasse definiert zwei Eigenschaften und eine Methode namens „navigation“, die keine Parameter berücksichtigt und einen String zurückgibt.

JSF Groovy fügt Groovy-Klasse hinzu

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 & Groovy</h2>
<br/>
<h:outputText value="#{indexBean.message}"></h:outputText>
<h:inputText value="#{indexBean.userInput}"></h:inputText>
<br/>
<h:commandButton value="Navigate Using Groovy Action" 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 & Groovy</h2>
<h3>Anonymous View</h3>
<h:outputText value="#{indexBean.message}"></h:outputText>
#{' '}
<h:outputText value="#{indexBean.userInput}"></h:outputText>
</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- und Groovy-Integrationsdemo

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

JSF 2 Groovy-Beispiel 1

JSF 2 Groovy Beispiel 2

9. java.lang.NoClassDefFoundError: groovy/lang/GroovyObject

Wenn Sie die vorherigen Schritte sorgfältig befolgt haben und Ihre Anwendung nicht ordnungsgemäß funktioniert. Stellen Sie sicher, dass Ihr Tomcat 7 die Groovy-Bibliothek in seinen Klassenpfad geladen hat, auch wenn Ihre Anwendung erfolgreich kompiliert wurde. Möglicherweise kennen Sie auch eine Fehlermeldung, die auf der Eclipse-Konsole angezeigt wird

SEVERE: Unable to load annotated class: net.javabeat.jsf.IndexBean, reason: java.lang.NoClassDefFoundError: groovy/lang/GroovyObject

Auch wenn Ihre Anwendung ausgeführt wurde, Ihr verwaltetes Groovy-Bean jedoch nicht initialisiert wurde, versuchen Sie zu navigieren, um eine große Ausnahme zu sehen, die Ihnen mitteilt, dass Ihr verwaltetes Bean aufgelöst wurde Null.

Machen Sie sich keine Sorgen, Sie müssen lediglich die Groovy-Bibliothek auf Ihrem Server installieren, indem Sie die folgenden Schritte ausführen:

  • Klicken Sie mit der rechten Maustaste auf das Projekt.
  • Wählen Sie Eigenschaften aus und zeigen Sie auf Deployment Assembly.
  • Klicken Sie innerhalb des auf die Schaltfläche „Hinzufügen“. Webbereitstellungsassembly Dialog.
  • Wählen Sie das Java-Build-Pfad-Einträge und klicken Sie auf Weiter.
  • Wählen Sie die Bibliotheken aus, die für Groovy erwähnt wurden. und klicken Sie auf „Fertig stellen“.
  • Viel Spaß beim Ausführen Ihrer Anwendung.

JSF 2 Groovy Beispiel 4

JSF 2 Groovy-Beispiel 5

JSF 2 Groovy-Beispiel 6

JSF 2 Groovy-Beispiel 7

(wpdm_file id=55)

Kommentar verfassen

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

Nach oben scrollen