java ee - fhws 2014 - 3 jsf

29
Java EE Full Stack for Business Applications Java Server Faces 2014-10- 18

Upload: matthias-reining

Post on 26-Jun-2015

104 views

Category:

Software


0 download

DESCRIPTION

Java EE - FHWS 2014 - 3 JSF

TRANSCRIPT

Page 1: Java EE - FHWS 2014 - 3 JSF

Java EEFull Stack for Business

Applications

Java Server Faces

2014-10-18

Page 2: Java EE - FHWS 2014 - 3 JSF

Referent: MATTHIAS REINING

Technical Manager Insurance at RGI Deutschland GmbH

blog: http://blog.matthias-reining.com

twitter: https://twitter.com/MatthiasReining

about.me: http://about.me/matthiasreining

2014-10-18

Page 3: Java EE - FHWS 2014 - 3 JSF

JAVA SERVER FACES

2014-10-18

Page 4: Java EE - FHWS 2014 - 3 JSF

DAS PROGRAMM

Die Spec Idee, Historie

Der App Server Containerkonzept Paketierung (JAR, WAR, EAR) Marktüberblick

Das Projekt Entwicklung eines Beispielprojektes IDE Settings, Oberflächen (Servlets, JSF),

Business Logic (EJB), Persistence (JPA), Java EE Patterns (CDI), Web Services (JAX-RS)

Die Produktion Buildmanagement (maven, Jenkins) Deployment einer Java EE Anwendung in

der Cloud bei einem PaaS Anbieter

2014-10-18

Page 5: Java EE - FHWS 2014 - 3 JSF

BESTANDSAUFNAHME

Welche Java UI Frameworks sind bekannt? Struts?

Wicket?

Vaadin?

GWT?

Spring Web MVC?

JSF?

2014-10-18

Page 6: Java EE - FHWS 2014 - 3 JSF

Wieso werden neben Servlets & JSPs noch andere Frameworks

genutzt?Komfortables Handling von Templates HTML Formulare Komponenten Wartung …

2014-10-18

Page 7: Java EE - FHWS 2014 - 3 JSF

JAVA SERVER FACES

2014-10-18

Page 8: Java EE - FHWS 2014 - 3 JSF

What is JSF?

JavaServer Faces (JSF) is a UI component based Java Web application framework. JSF is serverbased, e.g. the JSF UI components and their state are represented on the server with a defined life cycle of the UI components. JSF is part of the Java EE standard.

[Quelle: http://docs.oracle.com/javaee/7/firstcup/doc/java-ee001.htm#GKHOY]

2014-10-18

Page 9: Java EE - FHWS 2014 - 3 JSF

Java Server Faces

Tutorials / Nachschlagewerke

http://docs.oracle.com/javaee/7/tutorial/doc/jsf-intro.htm http://jsfatwork.irian.at/

2014-10-18

Page 10: Java EE - FHWS 2014 - 3 JSF

JSF - SpecReference Implementation: MojarraAlternative: MyFaces

Konkrete Implementierung hängt vom Application Server ab!

2014-10-18

Page 11: Java EE - FHWS 2014 - 3 JSF

MODEL – VIEW – CONTROLLER

Designpattern

2014-10-18

Page 12: Java EE - FHWS 2014 - 3 JSF

Java Server Faces

MODEL Java POJO

VIEW Faclet

CONTROLLER Managed Bean (Backing Bean)

2014-10-18

Page 13: Java EE - FHWS 2014 - 3 JSF

POJOModel

Plain Old Java Object

2014-10-18

Page 14: Java EE - FHWS 2014 - 3 JSF

FACLETSView

XHTML Files mit speziellen Tags <h:…>

2014-10-18

Page 15: Java EE - FHWS 2014 - 3 JSF

MANAGED BEAN

ControllerSynonym „Backing Bean“

@ManagedBean verutlich deprecated ab Java EE 8(http://

stackoverflow.com/questions/4347374/backing-beans-managedbean-or-cdi-beans-named

)

@Named (siehe später CDI)

2014-10-18

Page 16: Java EE - FHWS 2014 - 3 JSF

JSF Scopes

@RequestScope (javax.faces.bean.RequestScoped) @SessionScope (javax.faces.bean.SessionScoped) @ApplicationScope (javax.faces.bean.ApplicationScoped)

@ViewScope (javax.faces.bean.ViewScoped) @CustomScope (javax.faces.bean.CustomScoped) @NoneScope (javax.faces.bean.NoneScoped)

2014-10-18

Page 17: Java EE - FHWS 2014 - 3 JSF

UI KOMPONENTEN IN EINEM FACELETJSF-HTML-UI-Komponenten xmlns:h="http://xmlns.jcp.org/jsf/html

Tags zur grafischen Darstellung der Benutzeroberfläche

JSF-Core-UI-Komponentenxmlns:f="http://xmlns.jcp.org/jsf/core"

Tags, die unabhängig von der Darstellung sind. Beispielsweise gehören hierzu die Konvertierung und die Validierung der Geschäftsdaten oder auch die ActionListener.

JSF-Templating

xmlns:ui="http://xmlns.jcp.org/jsf/facelets"Tags für das Templating

[Quelle: Professionell entwickeln mit Java EE 7 – Das umfassende Handbuch, Seite 753]

2014-10-18

Page 18: Java EE - FHWS 2014 - 3 JSF

TEMPLATING MIT FACELETS

<ui:insert>„Platzhalter“ in einem Template

<ui:composition>Verbindung zum Template

<ui:define>„Implementierung“ eines Platzhalters

<ui:include>Wiederverwendung von „Snippets“

http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/http://www.oracle.com/technetwork/articles/java/facelets-454361.html

2014-10-18

Page 19: Java EE - FHWS 2014 - 3 JSF

JSF LIFECYCLE

1. RESTORE_VIEW2. APPLY_REQUEST_VALUES3. PROCESS_VALIDATIONS4. UPDATE_MODEL_VALUES5. INVOKE_APPLICATION6. RENDER_RESPONSE

2014-10-18

Page 20: Java EE - FHWS 2014 - 3 JSF

JSF Messages

FacesMessage m = new FacesMessage("läuft..");

FacesContext.getCurrentInstance().addMessage("testMessage", m);

<h:message for="testMessage„/>

Globale MessageFacesContext.getCurrentInstance().addMessage(null, m);

<h:messages/>

<h:messages globalOnly=„true“/>

2014-10-18

Page 21: Java EE - FHWS 2014 - 3 JSF

i18nInternationalization

2014-10-18

Page 22: Java EE - FHWS 2014 - 3 JSF

Validierung<f:validate…

2014-10-18

Page 23: Java EE - FHWS 2014 - 3 JSF

JSF Events & Listener

2014-10-18

Page 24: Java EE - FHWS 2014 - 3 JSF

JSF Komponenten Bibliotheken

Wichtig für GeschäftsanwendungenAllerdings nicht teil der Java EE Spezifikation

2014-10-18

Page 25: Java EE - FHWS 2014 - 3 JSF

JSF Komponenten Bibliotheken

Primefaces

Rich Faces

Ice Faces

My Faces

2014-10-18

Page 26: Java EE - FHWS 2014 - 3 JSF

http://primefaces.org/

2014-10-18

Page 27: Java EE - FHWS 2014 - 3 JSF

Aber…Wieso gibt es dann neben JSF noch andere Webframeworks?

2014-10-18

Page 29: Java EE - FHWS 2014 - 3 JSF

Stirbt JSF?

2014-10-18