1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.

Slides:



Advertisements
Lignende præsentationer
1 JavaServer Faces Copyright © Lund & Bendsen A/S Navigation, events & listeners.
Advertisements

Location-Based services. Maps Agenda •Geocoding •Interaktive kort med Map Vievs og Map Activities •Overlays til kort •Location-based services •Advarsler.
C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
1 Facelets Copyright © Lund & Bendsen A/S Introduktion til Facelets.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
J2EE Java Server Pages (JSP) Introduktion Internetteknologi 2 (ITNET2)
JSF i Jyske Bank Ingeniørhøjskolen Århus Som oplevet af Niels Frydenholm & Peter Bødskov.
B.V. Electronic Østerbro Skive GuideOnLine.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
1 Parsing. 2 Mål: Et program til indlæsning og beregning af aritmetiske udtryk Eksempel: Beregn (3*5 + 4/2) - 1 Løs et lettere problem først: Læs en streng.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
1 JavaServer Faces Copyright © Lund & Bendsen A/S UI Components II.
CodeIgniter Database Brugerinput Form Validation 20101JFH.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
14 - JavaBeans. 2 NOEA2009Java-kursus – JavaBeans Content What is a Java Bean? BDK What makes Bean possible? Support for Java Bean References.
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Tilstandsstyring/Otto Knudsen 1 Tilstandsstyring Motivation ViewState EventTarget, EventArgument.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
© 2013 Netcompany A/S Netcompany A/S · Grønningen 19 · 1270 København K · Tlf Side 1 Simon Otto Nielsen Diplomingeniør i informations og kommunikationsteknologi.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
1 JavaServer Faces Copyright © Lund & Bendsen A/S JSF Lifecycle.
1 Unified Expression Language Copyright © Lund & Bendsen A/S Unified Expression Language.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Rohde & Schwarz - WPF Det bedste siden skiveskåret brød? v/Magnus Toftdal Lund.
1 JavaServer Faces Copyright © Lund & Bendsen Introduktion til JavaServer Faces.
J2EE Java Server Pages (JSP) Avanceret Internetteknologi 2 (ITNET2)
Internetteknologi 2 (ITNET2) Java teknologi på Internettet J2EE Servlets.
Forelæsning 3.1 Collections Javas for-each løkke
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Forelæsning 7.1 – repetition
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Web- og serverprogrammering Dette materiale er under Åben Dokumentlicens, se Java Server Pages - dag 5 Avanceret.
Web- og serverprogrammering
Quiz – Uge 3 – torsdag – første time
Quiz – Uge 3 – torsdag – første time
Præsentationens transcript:

1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF

2 JavaServer Faces Copyright © Lund & Bendsen Hvordan hænger JSF sammen? I dette kapitel ser vi på hvordan de forskellige dele af JSF hænger sammen og samarbejder på runtime. I løbet af kapitlet gennemgår vi en JSF- applikation. Du kan finde denne applikation i projektet: JSF-Ex-Intro-CustomerApplication

3 JavaServer Faces Copyright © Lund & Bendsen Managed JavaBeans Det store overblik JSP/Facelets med JSF-UI Faces Servlet Managed JavaBeans JSF TagLibs Validators Events Messages Forretningslogik, fx EJB eller Business Delegate faces-config.xml Browser http-req http-resp JSF-WebApp

4 JavaServer Faces Copyright © Lund & Bendsen Et eksempel på en JSF-applikation I det følgende gennemgås en simpel applikation, som simulerer oprettelsen af en kunde. hvis alt går godt ender vi her men af og til simulerer programmet en fejl og vi ender her i stedet

5 JavaServer Faces Copyright © Lund & Bendsen Et eksempel på en JSF-applikation Applikationen består af følgende elementer –web.xml, som bl.a. registerer FacesServlet –3 views (implementeret både som Facelets og JSP: createCustomer.xhtml/.jsp, viewCustomer.xhtml/jsp og error.xhtml/.jsp) –en customerBean, som repræsenterer en kunde –en faces-config.xml-fil

6 JavaServer Faces Copyright © Lund & Bendsen Sammenhængen faces-config.xml :CustomerBean name=”Peter Jensen”... modtager request instantierer propagerer parametre JSP-sider/ Facelets JSP-sider/ Facelets læser renderes tilgår context forwarder læser :FacesServlet Model View Controller

7 JavaServer Faces Copyright © Lund & Bendsen Views – createCustomer.xhtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " Customer Application JSF (Facelets) Demo Create customer <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " Customer Application JSF (Facelets) Demo Create customer

8 JavaServer Faces Copyright © Lund & Bendsen Views – createCustomer.jsp Customer Application JSF (JSP) Demo Create customer <h:commandButton action="#{customerBean.createCustomer}" value="Create Customer" /> Customer Application JSF (JSP) Demo Create customer <h:commandButton action="#{customerBean.createCustomer}" value="Create Customer" />

9 JavaServer Faces Copyright © Lund & Bendsen Views – viewCustomer.xhtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " Customer Application JSF (Facelets) Demo View customer <h:outputText value="!!!" rendered="#{customerBean.important}" style="color: red; font-weight: bold;" /> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " Customer Application JSF (Facelets) Demo View customer <h:outputText value="!!!" rendered="#{customerBean.important}" style="color: red; font-weight: bold;" />

10 JavaServer Faces Copyright © Lund & Bendsen Views – viewCustomer.jsp Customer Application JSF (JSP) Demo View customer <h:outputText value="!!!" rendered="#{customerBean.important}" style="color: red; font-weight: bold;" /> Customer Application JSF (JSP) Demo View customer <h:outputText value="!!!" rendered="#{customerBean.important}" style="color: red; font-weight: bold;" />

11 JavaServer Faces Copyright © Lund & Bendsen Model - CustomerBean.java JSF kan automatisk propagere data mellem UI-komponenter og Managed Beans. public class CustomerBean { String password; String name; boolean important; // getters og setters til 'password' og 'important' står her public String getName() { return name; } public void setName(String name) {this.name = name;} public String createCustomer() { System.out.println("createCustomer() invoked"); if (Math.random()<0.5) { return "success"; } else { return "failure"; } public class CustomerBean { String password; String name; boolean important; // getters og setters til 'password' og 'important' står her public String getName() { return name; } public void setName(String name) {this.name = name;} public String createCustomer() { System.out.println("createCustomer() invoked"); if (Math.random()<0.5) { return "success"; } else { return "failure"; } value-binding

12 JavaServer Faces Copyright © Lund & Bendsen faces-config.xml Faces-config.xml-filen beskriver sammenhængen mellem delelementerne i en JSF-applikation. I dette eksempel: Managed Beans Navigationsregler customerBean dk.lundogbendsen.bean.CustomerBean session /pages/createCustomer.xhtml success /pages/viewCustomer.xhtml failure /pages/error.xhtml customerBean dk.lundogbendsen.bean.CustomerBean session /pages/createCustomer.xhtml success /pages/viewCustomer.xhtml failure /pages/error.xhtml

13 JavaServer Faces Copyright © Lund & Bendsen Actions JSF er eventorienteret i modsætning til ’normale’ Web-applikationer, som er request/response-orienterede. Princippet er, at vi laver en Action-metode (en event-listener) som vi registerer på en knap. Action-metoder vil typisk invokere forretningslogik, fx placeret i EJB’er. package dk.lundogbendsen.bean; public class CustomerBean {.... public String createCustomer() { System.out.println("createCustomer() invoked"); if (Math.random()<0.5) { //simulerer en ret ustabil database;-) return " success "; } else { return " failure "; }... package dk.lundogbendsen.bean; public class CustomerBean {.... public String createCustomer() { System.out.println("createCustomer() invoked"); if (Math.random()<0.5) { //simulerer en ret ustabil database;-) return " success "; } else { return " failure "; }... En action-metode tager ingen parametre og har String som retur-type. Vi har her valgt at placere den i CustomerBean, men den kunne i princippet være placeret i en hvilken som helst Bean. < h:commandButton action="#{customerBean.createCustomer}" value="Create Customer" />

14 JavaServer Faces Copyright © Lund & Bendsen Navigation Action-metoder returnerer en String, der fortæller JSFs navigationssystem, hvilken side der skal forwardes til. I faces-config.xml er String- værdier mappet til Facelets og/eller JSP-sider. Exadel JSFStudios visualisering af faces-config.xml’s navigationsregler package dk.lundogbendsen.bean; public class CustomerBean {.... public String createCustomer() { System.out.println("createCustomer() invoked"); // simulerer en ret ustabil database ;-) if (Math.random()<0.5) { return " success "; } else { return " failure "; }... package dk.lundogbendsen.bean; public class CustomerBean {.... public String createCustomer() { System.out.println("createCustomer() invoked"); // simulerer en ret ustabil database ;-) if (Math.random()<0.5) { return " success "; } else { return " failure "; }...

15 JavaServer Faces Copyright © Lund & Bendsen web.xml web.xml i en JSF-applikation vil altid som minimum registrere FacesServletten og mappe den til en url, fx *.jsf eller /faces/*.

16 JavaServer Faces Copyright © Lund & Bendsen Overblik over applikationen En JSF-applikation er ’blot’ en almindelig web-applikation, som indeholder en række JSF-jar-filer, bestemte entries i web.xml og xml-filer til konfiguration af applikationen.

17 JavaServer Faces Copyright © Lund & Bendsen 1) Et login-skærmbillede Øvelse