Jsf

Wat is JSF ?

JSF is de afkorting van Java Server Faces. Het is een raamwerk, vergelijkbaar met Struts, waarmee je bepaalde programmeertaken niet meer moet uitvoeren. Waar je bij een gewone Java webapplicatie nog een hoop moet regelen, zoals het bepalen van de volgende webpagina, kan je de koppeling tussen de webpagina's in JSF in een XML-bestand definiëren. En als je MyEclipse gebruikt, kan je die zelfs tekenen.

JSF055.png

Als je op "source" klikt, kan je de bijbehorende XML tekst bekijken.
jsf056.png

kern van JSF : Tomcat, web.xml en faces-config

We gebruiken Tomcat als servletcontainer. Hierin draait dus de servlet die deel uitmaakt van het JSF raamwerk. Om Tomcat duidelijk te maken waar hij de servlet van je applicatie kan vinden, maak je gebruik van een web.xml bestand. Maak je gebruik van Java Server Faces, dan moet je deze servlet niet schrijven. Je moet dan uiteraard wel in de web.xml verwijzen naar JSF. Hieronder zie je de inhoud van de web.xml voor een JSF webapplicatie.
jsf057.png
Merk op dat het URL-pattern verwijst naar *.faces. Dat is ook de reden waarom je je applicatie enkel kan oproepen met .faces als extensie in plaats van .jsp. In onze webstek is de startpagina EGBstart.jsp. Om de applicatie lokaal op te roepen, starten we eerst de Tomcat server in myEclipse. Daarna roepen we de applicatie op via de URL http://localhost:8080/engelbert/EGBstart.faces. Als je in plaats daarvan EGBstart.jsp zou intikken, zou je een foutmelding krijgen.
jsf058.png

En nu is de vraag natuurlijk : als je zelf de servlet niet moet schrijven, hoe werkt het dan allemaal ? Hoe kan de servlet van het JSF raamwerk weten waar de informatie op de webpagina's vandaan komt ?
Een eerste antwoord hebben we al gegeven : Tomcat weet via web.xml dat het de servlet van JSF moet opladen. Maar dit is een standaard servlet die zijn informatie ergens vandaan moet halen : en die informatie zit in de faces-config.xml.

de navigatieregels in faces-config

Allereerst moet JSF weten hoe je van de ene webpagina naar de andere gaat. Hieronder zie je een deel van de grafische weergave van faces-config.xml. Je gaat van EGBstart.jsp naar EGBmenu.jsp indien de aanmelding geslaagd is. Anders blijf je op de pagina EGBstart.jsp.
jsf060.png

Hieronder zie je hoe je dit in xml weergeeft : via zogenaamde navigation rules.
Deze navigatieregels bepalen hoe je van de ene webpagina naar de andere gaat en onder welke voorwaarde.
jsf059.png

En nu is natuurlijk de vraag : waar bepaal je of iemand geweigerd of toegelaten is ?
Daarvoor moeten we eerst uitleggen wat een managed bean is.

werken met een managed bean

Een managed bean is een Javabean dat je gebruikt in een JSF webapplicatie. En een Javabean is een Javaprogramma dat bestaat uit eigenschappen, getters en setters en eventueel nog enkele andere methodes.
Hieronder zie je hoe de managed bean wordt gedefinieerd in faces-config.xml.
jsf061.png

MyEclipse geeft dit ook weer in de grafische boomweergave van het faces-config-bestand.
jsf062.png

Achter de OK-knop van het aanmeldscherm zit een actie die de methode aanmelden() van de
managed bean "gebruiker" oproept.
jsf063.png

Het is deze methode die nagaat of de combinatie van gebruiker en wachtwoord te vinden is in de databank. Indien dat zo is, dan geeft de methode de string "toegelaten" terug. Anders is het de string "geweigerd". En daarmee zijn we weer aanbeland bij het faces-config bestand waar we de navigatieregels hebben gedefinieerd.
jsf064.png

Meer voorbeelden van JSF-webpagina's vind je hieronder.
een menu opstellen met JSF
overzicht van gegevens met JSF
JSF master detail

Page tags: java jsf
page_revision: 26, last_edited: 1219520723|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License