JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
Ein Standard für metadatenbasierte Validierung in allen Layern einer Applikation. Mit diesem Versprechen geht der neue Bean-Validation Standard, auch bekannt als JSR 303, ins Rennen. Von der Wiederverwendbarkeit von bestehenden Constraints zum einfacheren Aufbau eigener Constraints bis hin zur Validierung von Objektgraphen bietet diese Spezifikation einige Mechanismen für metadatenbasierte Validierungen. In einer Feature Tour werden die zentralen Bestandteile der Spezifikation vorgestellt.
In einem zweiten Teil wird die Nutzung von metadatenbasierter Validierung in JEE-Webapplikationen gezeigt. Anhand von kurzen Beispielen wird die Rolle von MyFaces Extensions Validator (aka MyFaces ExtVal) bei der Integration von JSR 303 in JSF-Applikationen veranschaulicht.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
Ein Standard für metadatenbasierte Validierung in allen Layern einer Applikation. Mit diesem Versprechen geht der neue Bean-Validation Standard, auch bekannt als JSR 303, ins Rennen. Von der Wiederverwendbarkeit von bestehenden Constraints zum einfacheren Aufbau eigener Constraints bis hin zur Validierung von Objektgraphen bietet diese Spezifikation einige Mechanismen für metadatenbasierte Validierungen. In einer Feature Tour werden die zentralen Bestandteile der Spezifikation vorgestellt.
In einem zweiten Teil wird die Nutzung von metadatenbasierter Validierung in JEE-Webapplikationen gezeigt. Anhand von kurzen Beispielen wird die Rolle von MyFaces Extensions Validator (aka MyFaces ExtVal) bei der Integration von JSR 303 in JSF-Applikationen veranschaulicht.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
Mit dem Google Web Toolkit (GWT) kann das Frontend einer Webapplikation bequem in Java entwickelt werden. Für die Steuerung des UIs wird von Google das Model-View-Presenter-Pattern (MVP) empfohlen.
Es schreibt eine strenge Trennung von View und Presenter vor, die zu einer sauberen Gliederung führt und der Testbarkeit dient. Wir zeigen, wie man MVP mit GWT einsetzt und dabei Unit-Tests zur Qualitätssicherung nutzt.
Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden. Wir zeigen, wie Activities und Places mit MVP zusammen spielen.
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
Serverseitige Web-Technologien waren lange Zeit das Mittel der Wahl für Java-basierte Webanwendungen. Der Trend jedoch geht immer mehr zu JavaScript-basierten und damit Clientseitigen Web-GUIs. Wir werfen dazu einen Blick auf Google's AngularJS und erläutern an plastischen Beispielen seine Kernkonzepte und Funktionsweise. Was zeichnet AngularJS für die Realisierung der im Java-Umfeld häufig vertretenen, datengetriebenen Anwendungen besonders aus und wie fühlt sich die Entwicklung damit im direkten Vergleich dazu an?
Ein konkretes Fallbeispiel aus der Praxis, bei dem wir durch den Wechsel von einer JSF/Portlet-basierten Portal-Lösung hin zu einem AngularJS-basiertem Ansatz bei identischem JEE-Backend und Funktionalität Performance-Gewinne im Bereich von Zehnerpotenzen realisieren konnte, zeigt dabei auf, daß sich dieser Paradigmentwechsel durchaus lohnen kann!
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
Oft hört man die Aussage, dass man mit JavaScript keine professionellen Geschäftsanwendungen entwickeln kann. In dieser Session möchte ich versuchen, diese Aussage zu widerlegen. Hierzu werde ich zeigen, wie bewährte Konzepte, wie z.B. Continuous Integration, für eine AngularJS-Anwendung verwendet und umgesetzt werden können.
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
Kurzer Überblick und Einführung in das Thema WebGL & 3D Darstellung im Browser im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
Kurzer Überblick und Einführung in das Thema HTML5 Web Components im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
Mit dem Google Web Toolkit (GWT) kann das Frontend einer Webapplikation bequem in Java entwickelt werden. Für die Steuerung des UIs wird von Google das Model-View-Presenter-Pattern (MVP) empfohlen.
Es schreibt eine strenge Trennung von View und Presenter vor, die zu einer sauberen Gliederung führt und der Testbarkeit dient. Wir zeigen, wie man MVP mit GWT einsetzt und dabei Unit-Tests zur Qualitätssicherung nutzt.
Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden. Wir zeigen, wie Activities und Places mit MVP zusammen spielen.
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
Serverseitige Web-Technologien waren lange Zeit das Mittel der Wahl für Java-basierte Webanwendungen. Der Trend jedoch geht immer mehr zu JavaScript-basierten und damit Clientseitigen Web-GUIs. Wir werfen dazu einen Blick auf Google's AngularJS und erläutern an plastischen Beispielen seine Kernkonzepte und Funktionsweise. Was zeichnet AngularJS für die Realisierung der im Java-Umfeld häufig vertretenen, datengetriebenen Anwendungen besonders aus und wie fühlt sich die Entwicklung damit im direkten Vergleich dazu an?
Ein konkretes Fallbeispiel aus der Praxis, bei dem wir durch den Wechsel von einer JSF/Portlet-basierten Portal-Lösung hin zu einem AngularJS-basiertem Ansatz bei identischem JEE-Backend und Funktionalität Performance-Gewinne im Bereich von Zehnerpotenzen realisieren konnte, zeigt dabei auf, daß sich dieser Paradigmentwechsel durchaus lohnen kann!
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
Oft hört man die Aussage, dass man mit JavaScript keine professionellen Geschäftsanwendungen entwickeln kann. In dieser Session möchte ich versuchen, diese Aussage zu widerlegen. Hierzu werde ich zeigen, wie bewährte Konzepte, wie z.B. Continuous Integration, für eine AngularJS-Anwendung verwendet und umgesetzt werden können.
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
Kurzer Überblick und Einführung in das Thema WebGL & 3D Darstellung im Browser im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
Kurzer Überblick und Einführung in das Thema HTML5 Web Components im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
[PDF] Der Grundriss zeigt, wie sich die verschiedenen "Lebensräume der Waldgeister" auf die Räume von Murgels Spielhaus verteilen und wie sie miteinander verbunden sind
[http://www.lifepr.de?boxid=341200]
The document contains a family tree showing the relationships between members of the Simpson family, including Homer, Marge, Bart, Lisa, and Maggie Simpson. It also includes questions about family members like "What's your mum's name?" and answers like "Her name is Maria." The document provides information about familial relationships and asks questions to understand those relationships.
Besonderheiten in Wirkung und Nutzen zur Führungskräfteentwicklung von Executive Managern. In einem Unternehmen im Umbau entwickeln die Führungskräfte eine neue, starke Verantwortung für das Unternehmen und für ihr eigenes Handeln. Die Kommunikation und das Vertrauen verbessern sich, Arbeitsprozesse werden vereinfacht. Die Organisation vernetzt sich neu und wird tragfähiger. Der Methodenmix wird entsprechend der Zielgruppe zusammengestellt, die Instrumente und Experten werden gemeinsam mit dem Coach geplant und zusammengestellt.
In der gezielten Entwicklung des Besucherservice sehen Unternehmen große Chancen ihre Kundenbeziehungen nachhaltig zu verbessern. Gelingen kann das vor allem durch eine stärkere strategische Orientierung an den Wünschen der Gäste.
Das ist das Fazit einer Online-Umfrage, die vom X [iks] Institut für Kommunikation und ServiceDesign, Berlin im Winter 2012 bei kleinen, mittleren und großen Unternehmen durchgeführt wurde.
Die große Mehrheit der Teilnehmer (83%) ist sich darüber im klaren, daß die Bedeutung des Besucherservice weiter zunehmen und dabei positive Auswirkungen auf die Verbesserung der Kundenbeziehung (29%), die Aufdeckung von Kundenbedürfnissen (24%) und die Erhöhung des Kundenwissens (21%) haben wird.
Ein professionelles Besuchsmanagement (24%) und abgestimmte Besuchsprozesse (24%) sind dabei genauso entscheidend, wie erlebnisorientierte Besuchskonzepte (18%) und eine aktive Besucherkommunikation (18%) - in allen Phasen des Unternehmensaufenthaltes.
Insbesondere Planungsservices (67%), Empfangsservices (58%) und Betreuungsservices (58%) sind, nach Ansicht der befragten Verantwortlichen aus Management, Marketing, Vertrieb und Service, dem Besucher besonders wichtig, aber auch Serviceangebote die über den Besuch hinausgehen: Nachbesuchsservices (42%).
Eine verbesserte Qualität im Besucherservice der Unternehmen, läßt sich allerdings nur dann erreichen, so die Einschätzung der Teilnehmer, wenn zukünftig verstärkt in Prozesse (50%) und Personal (42%) sowie geeignete Technik (17%) und Systeme (17%) investiert wird.
Physische und psychische Belastungen von Führungskräften – welcher Umfang und welche Ursachen lassen sich feststellen und wie begegnet man ihnen am besten?
Ende März 2012 präsentierten sich DieRedaktion.de auf der Internet World in München. Die dazugehörigen Präsentations-Sheets sind nun auf der Messe-Homepage zum Download hinterlegt.
Speaker: Sven Kölpin
Komponentenbibliotheken wie Primefaces und Richfaces stellen für die Entwicklung von JSF-Anwendungen eine Vielzahl komplexer Komponenten bereit. Aber der ersten Euphorie folgt die Ernüchterung. Und statt der erhofften Vorteile muss man sich mit neuen Problemen befassen. Dabei kann man sich mit HTML5, JavaScript, Composite Components und der Behavior API maßgeschneiderte Erweiterungen für die eigene Anwendung schaffen.
Der Vortrag zeigt wie man für eine JSF-Anwendung dynamische und wiederverwendbare Bausteine für die eigene Anwendung realisieren kann.
Sie kennen doch bestimmt das "Gesetz des Instruments": Wer als Werkzeug nur ein modernes Frontend-Framework hat, löst jedes Problem mit einer Single Page-Applikation. So oder so ähnlich, nur halt mit Hammer und Nagel lautet es, beschreibt jedoch ganz gut die aktuelle Situation der JavaScript-Welt. Auf nahezu jede Anforderung wird mit einer aufgeblähten, clientseitig gerenderten SPA geantwortet. Doch ist es schön langsam an der Zeit, dass wir uns fragen sollten: Ist das wirklich alles? Und die Antwort lautet ziemlich sicher "Nein". Doch genau diesem Thema widmen wir uns und werfen einen Blick auf die Alternativen und da gibt es viele.
Im React-Ökosystem findet aktuell ein kleiner Umbruch statt. Mit Server Side Rendering, Static Site Generation, Server Components und Frameworks wie Next verschiebt sich ein Teil der Arbeit in Richtung Server. Dieser Trend ist auch bei Vue, Svelte und Angular zu beobachten. Und genau das ist es, was die sogenannten Meta-Frameworks ausmacht. Uns als EntwicklerInnen gibt das mehr Flexibilität, um auf Anforderungen reagieren zu können. Sie müssen nicht mehr den kompletten Quellcode zum Client übertragen, haben bessere Caching-Möglichkeiten und auch die Suchmaschinen sind Ihnen dankbar.
Dieser Vortrag gibt Ihnen einen Überblick über die wichtigsten Features von Meta-Frameworks und wo und vor allem wie sie gewinnbringend eingesetzt werden können.
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
Speaker: Sebastian Reiners
Seit Java EE 7 stehen auch Enterprise-Entwicklern Server-Sent Events und WebSockets in standardisierter Form zur Verfügung. Höchste Zeit also, sich diese andere Art der Kommunikation im Web einmal näher anzusehen. Was sind Server-Sent Events und WebSockets überhaupt, was sind ihre Vorteile und wo bieten sich sinnvolle Anwendungsbereiche?
Im Rahmen der Vorstellung der unterschiedlichen Ansätze werden praktische Erfahrungen und Fallstricke, insbesondere im Zusammenspiel mit JSF und CDI veranschaulicht, sowie ein erstes Resümee gezogen.
Wachsende Daten beanspruchen schnellere und klügere Systeme, um die Datenverarbeitung bewältigen zu können. Die zeitgemäße Antwort darauf lautet: Big Data mit NoSQL! MongoDB ist eine der beliebtesten NoSQL-Datenbanken und bietet dem .NET-Entwickler einige Vorteile gegenüber bekannter SQL-Datenbanken. Der MongoDB-Experte Gregor Biswanger zeigt in seiner Session dazu einen perfekten Überblick und einige Tipps zum Einstieg aus der Praxis.
Ein Vortrag bei der Gesellschaft für Informatik OWL im Heinz Nixdorf Museums Forum Paderborn.
Wie gut schlägt sich Angular gemessen an den Herausforderungen aktueller Applikationsentwicklung?
Wie gut unterstützt die Angular Plattform die Entwicklung moderner "Progressive Web Apps"?
Kann man mit einer App alle Endgeräte und Szenarien abdecken?
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
This is the presentation I held during the oral exam of my Bachelor Thesis.
The presentation is about where we can find expert knowledge around the internet and how we can excerpt this knowledge and use it as a basis for a Case-Based Reasoning system.
The second part of the thesis shows which principles of Software Engineering are used to implement an extraction prototype into a sophisticated development tool for CBR-systems.
The slides are provided in German.
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
30 minütige Präsentation des Google Web Toolkit, einem Java Framework zum erstennellen von Javafreien-Web-Applikationen. Den Download des Beispielprogramms finden Sie auf http://www.easy-coding.de/trac/gwt .
Lernen Sie das Zusammenspiel von MongoDB und dem Zend Framework 2 anhand eines praktischen Beispiels kennen! Diese Session zeigt, wie Sie mit MongoDB eine der beliebtesten dokumentenorientierten Open-Source-Datenbanken in Ihren ZF2-Projekten unkompliziert einsetzen und welche Fallstricke Sie vermeiden können.
This document introduces TypeScript as a superset of JavaScript that provides static typing, classes, and interfaces to JavaScript. It provides examples of how TypeScript adds types to variables, functions, and classes to catch errors early. Key features highlighted include basic and advanced types, enums, tuples, type inference, modules, and ES2016 features supported by TypeScript like constants, template strings, and arrow functions. The document argues that TypeScript helps catch errors early and provides a more robust development experience compared to plain JavaScript.
Kaum eine Sprache hat sich in den vergangenen Jahren so stark gewandelt wie JavaScript. Während die Sprache früher als Spielerei abgetan wurde, hat sich besonders in den letzten Sprachversionen gezeigt, dass man auch in JavaScript professionellen und hochwertigen Code schreiben kann. Dieser Talk zeigt anhand konkreter Beispiele, in welchen Bereichen es deutliche Verbesserungen gegeben hat und auf welche Weise man heute die typischen JavaScript-Fallstricke vermeiden kann. Dabei stehen besonders die neuesten Sprachversionen ECMAScript 2015 und 2016 im Fokus, die sich mithilfe von Transpilern auch problemlos in älteren Browsern nutzen lassen.
Der Begriff "MVC" ist in aller Munde. Das zeigen auch die Ergebnisse des Java EE 8 Community Surveys. Über 60 Prozent der Befragten gaben an, dass sie sich neben JSF auch ein MVC-Webframework in Java EE wünschen würden. Geleitet von diesem Wunsch wird in JSR 371 zurzeit am MVC-1.0-API für Java EE 8 gearbeitet. Doch es bleiben viele Fragen: Warum ein weiteres Webframework in Java EE? Woher stammt der Wunsch nach einer alternativen Technologie? Wie wird das MVC-1.0-API aussehen? Diese Session geht auf all diese Fragen ein und zeigt anhand konkreter Beispiele, wie mit MVC 1.0 leichtgewichtige und moderne Webanwendungen realisiert werden können.
This document provides an introduction and overview of URL rewriting and the Rewrite framework. It discusses:
- What URL rewriting is and examples of how it can modify URLs
- The benefits and uses of URL rewriting, including for SEO, bookmarks, and loose coupling
- Existing rewriting solutions like PrettyFaces and their limitations
- The Rewrite framework as an alternative, focusing on extensibility and a Java DSL configuration
- Key Rewrite features like framework integration, configurable rules, and transformations
- Examples of rewriting configurations including redirects, joins, parameters, and navigation handling
- Additional Rewrite capabilities like CDNs, resource processing, and migrating from PrettyFaces
A rewrite engine modifies the appearance of URLs in a web application. URL rewriting is used to make URLs more readable, search engine optimized, and to loosely couple the URL from the underlying implementation or framework. Rewrite is a new open source URL rewrite engine that provides a Java DSL for configuration and supports features like parameter extraction, validation, request actions, navigation handling, and response transformations through a pipeline. It aims to improve on existing solutions by providing a more extensible and typesafe configuration approach without framework dependencies. The rewrite-config-prettyfaces module can help migrate existing PrettyFaces applications to use Rewrite.
JSF 2.x hat mit einem verbesserten GET-Support und View-Parametern inzwischen schon einiges zum Thema RESTful zu bieten. Das Open-Source-Projekt PrettyFaces geht noch einen Schritt weiter, in dem es erlaubt, fast beliebige RESTful URLs zu erzeugen. Zudem bietet PrettyFaces noch weitere hilfreiche Goodies. In dieser Session wird auf die Konfiguration und die Verwendung von PrettyFaces im Detail eingegangen und aufgezeigt, wie sich zudem ganz einfach die SEO-Eigenschaften (Search Engine Optimization) der Applikation verbessern lassen.
4. JavaServer Faces
• „Bodenständige Technologie“
• Formularbasierte Anwendungen
• Data Lifecycle
– z.B. Konvertierung + Validierung
• Mächtige Komponenten
• Support für AJAX, HTML5, etc.
5. Aber...
• Server als zentrale Instanz
– Rendering, Validierung, etc.
– Viel Kommunikation mit dem Server
• PPR reicht oft nicht aus
• State, State, State, ...
– Muss synchron gehalten werden
– Ohne langlebige Scopes geht nichts
19. Kann man JSF und GWT
kombinieren?
Ja, das geht! ☺
20. JSF & GWT
• Das Ziel:
– Clientseitige Funktionalität
– Mehr Interaktivität
– User Experience
• Die Herausforderung:
– Interaktion mit JSF Komponenten
– JSF Lifecycle nicht beeinflussen
26. Probleme
• Kostenberechnung im Backend!
• JavaScript Komponente sinnvoll!
– Interaktivität (Tooltips, etc.)
• Berechnung auf dem Server?
– RTT problematisch!
• Neuimplementierung der
Berechnungslogik in JavaScript?
27. Lösungsansatz
• Implementierung mittels GWT
– Eingaben aus JSF Komponenten auf dem
Client auslesen
– Berechnungslogik als Shared Code
– Nutzung von JavaScript Chart Library für
die Grafik (d3.js)
29. Was brauchen wir?
• Interaktion mit JSF Komponenten
➡ GWT Components
• Integration der JavaScript Library
➡ JSNI
• Kommunikation mit Server
➡ Remoting
37. Eigene Komponenten
public class Html5TextBox extends TextBox {
public void setPlaceholder(String value) {
getElement().setPropertyString("placeholder", value);
}
public String getPlaceholder() {
return getElement().getPropertyString("placeholder");
}
}
38. Für uns interessant...
<input id="foobar" type="text" />
Element element =
Document.get().getElementById("foobar");
TextBox textBox = TextBox.wrap(element);
textBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
// ...
}
});
39. Was heißt das?
• Zugriff auf DOM Element der JSF
Komponenten ist einfach möglich
• Erlaubt uns...
– ... aktuelle Werte zu lesen
– ... den Zustand zu verändern
– ... Listener zu registrieren
44. Overlay Types
public native <????????> getKonferenz() /*-{
var konferenz = {
name : 'JAX',
jahr : 2014
};
return konferenz;
}-*/;
45. Overlay Types
public class Konferenz extends JavaScriptObject {
protected Konferenz() {}
public final native String getName() /*-{
return this.name;
}-*/;
public final native int getJahr() /*-{
return this.jahr;
}-*/;
}
58. Was heißt das?
• Kommunikation mit dem Server auf
verschiedene Arten möglich
• Wir verwenden RestyGWT:
– Nutzung von JAX-RS
– Modellobjekte als Shared Code
• Funktioniert auch mit JPA Entitäten!
– Stark typisierte Client API
60. Fazit
• JSF & GWT lassen sich kombinieren
• Keine „Lösung für Alles“
• Kann sinnvoll sein, wenn...
– geteilter Code benötigt wird
– bestehende JSF Anwendungen mehr
„Interaktivität“ benötigen
– Typensicherheit gewünscht wird
61.
62. Vielen Dank für die
Aufmerksamkeit!
https://github.com/chkal/jax14-jsf-gwt
Christian Kaltepoth
kaltepoth@ingenit.com
@chkal