JSF 1.2 w wykonaniu NetBeans IDE 6.1 Jacek Laskowski http://www.jaceklaskowski.pl Konferencja NetBeans RoadShow Kraków (11.04.2008), Warszawa (12.04.2008)
O mnie... Pasjonat Korporacyjnej Javy 5 (Java EE 5) oraz projektów otwartych Założyciel i lider Warszawa JUG Członek zespołów rozwojowych Apache Geronimo, Apache OpenEJB, Apache ServiceMix, Apache ActiveMQ Uczestnik programów NetBeans Community Acceptance Test (NetCAT) 5.0, 5.5 i 6.0 Prowadzi Notatnik Projektanta Java EE - http://www.jaceklaskowski.pl Służbowo: konsultant oprogramowania w IBM Polska
Konferencja JAVArsovia 2008 JAVArsovia 2008 2. edycja konferencji javowej organizowanej przez Warszawa JUG Kiedy: 31 maj 2008 Gdzie: Warszawa, Aula Wydziału Biologii, ul. Miecznikowa 1, Warszawa (niedaleko MIMUW) Wstęp wolny!
JAVArsovia 2008 - agenda
Pytania rozgrzewające Kto korzysta z NetBeans IDE 6? Regularnie, na codzień? Kto tworzył aplikacje webowe z JSF 1.2? A JSF 1.1 (+ Facelets)? Wicket, Tapestry? Struts? Spring MVC? Woodstock (Visual JSF)? Korzystasz z MyFaces czy JSF RI?
O NetBeans 6.1... NetBeans IDE 6.1 BETA (6.03.2008) Projekt otwarty Bezpłatne narzędzie do tworzenia aplikacji z Java EE 5, Ruby, C/ C++ i in. Wsparcie (prawie) wszystkich serwerów aplikacyjnych Java EE 5 (brak Geronimo!)
O JavaServer Faces (JSF) 1.2... Obowiązkowa część specyfikacji Java EE 5 Szkielet wspomagający konstruowanie interfejsu użytkownika aplikacji webowych Komponenty graficzne (kontrolki) Kontrola poprawności i konwersji danych z i do interfejsu użytkownika Wykonywanie akcji użytkownika po stronie serwera Odseparowany wygląd kontrolek Unified Expression Language (Unified EL)
O JSF techniczniej faces-config.xml serce aplikacji JSF Ziarna zarządzane model aplikacji Rozkład kontrolek na stronie HTML jako standardowy widok Deklaratywny model nawigacyjny Mechanizm wstrzeliwania zależności (IoC/DI) dostępny w ziarnach zarządzanych Kontrolki funkcyjne vs akcyjne
Konfiguracja JSF - FacesServlet <?xml version="1.0" encoding="utf-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/webapp_2_5.xsd"> <context-param> <param-name>javax.faces.state_saving_method</param-name> <param-value>client</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> <welcome-file-list> <welcome-file>faces/welcomejsf.jsp</welcome-file> </welcome-file-list> </web-app>
Konfiguracja JSF - faces-config.xml <?xml version='1.0' encoding='utf-8'?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>sessionbean1</managed-bean-name> <managed-bean-class>travelcenter.sessionbean1</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/details.jsp</from-view-id> <navigation-case> <from-outcome>main</from-outcome> <to-view-id>/page1.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config>
Konfiguracja JSF strona JSF <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Page</title> </head> <body> <f:view> <h1><h:outputtext value="javaserver Faces" /></h1> </f:view> </body> </html>
Demo #1 baaardzo trywialnie Prosta aplikacja JSF z pomocą NetBeans IDE 6.1 (jsf-witajswiecie)
Pytanie konkursowe Co to jest JavaServer Faces? A) Szkielet aplikacyjny interfejsu użytkownika B) Kolejny nietrafiony pomysł prezentacji Jacka C) Coś o czym wolał(a)bym wcześniej nie słyszeć D) Nic z powyższego Odpowiedź: A
Demo #2 siejemy ziarna Prosta aplikacja JSF z pomocą NetBeans IDE 6.1 (jsf-witajziarno)
Pytanie konkursowe Podaj nazwę pliku konfiguracyjny aplikacji JSF? A) faces.xml B) beans.xml C) faces-config.xml D) faces-beans.xml Odpowiedź: C
Demo #3 akcja! Prosta aplikacja JSF z pomocą NetBeans IDE 6.1 (jsf-witajakcjo)
Pytanie konkursowe Jaki element aplikacji JSF stanowi jego model? A) Ziarna kawowca B) Ziarna EJB C) Ziarna springowe D) Ziarna zarządzane Odpowiedź: D
Demo #4 Visual JSF na scenie (Visual) JSF w NetBeans IDE 6.1 (TravelCenter)
Pytanie konkursowe Podaj nazwę ujednoliconego języka wyrażeń w JSF 1.2? A) JSF EL B) JSP EL C) Unified EL D) Java EL Odpowiedź: C
Demo #5 Visual JSF na scenie 2 (Visual) JSF w NetBeans IDE 6.1 (Single Page CRUD with Table)
Pytanie konkursowe Jak nazywa się udostępniany przez NetBeans zestaw kontrolek JSF? A) Jarocin B) Woodstock C) Brodnica D) Grudziądz Odpowiedź: B
Demo #6 Specjalizowane wyrysowywanie Renderer z NetBeans 6.1 i GlassFish v2 (jsf-renderer)
Pytanie konkursowe Kto odpowiada za wyrysowywanie kontrolek w JSF? A) Model-View-Controller (MVC) B) NavigationHandler C) Renderer D) FacesServlet Odpowiedź: C
Demo #7 JSF i JPA z dołu do góry Utworzenie aplikacji JSF na bazie JPA (PioWeb)
Pytanie konkursowe Czy podoba Ci się wsparcie JSF przez NetBeans 6.1? A) Tak bardzo! B) Wspaniałe! Nie mogę doczekać się, kiedy go użyję! C) Jestem oczarowany/-a! D) Tu pojawiają się ochy i echy, westchnienia, itp. Odpowiedź: A, B, C i potencjalnie D
Podsumowanie Przykładowe aplikacje JSF w NetBeans IDE 6.1 3-in-1 edytor jspf 2-in-1 edytor facesconfig.xml JSF Pages from Entity Classes Visual Web JSF Library (Woodstock)
I to na dziś tyle...pytania? Słucham?