Programowanie wielowarstwowe i komponentowe
|
|
- Edward Lis
- 9 lat temu
- Przeglądów:
Transkrypt
1 Programowanie wielowarstwowe i komponentowe
2 Komunikaty
3 Proste komunikaty Założenia Przechowywanie niezmiennych stringów w prostym pliku tekstowym Załadowanie pliku. Odwołanie się do tekstu przez nazwę, która jest w pliku Cel Ten sam tekst na różnych stronach Zmiana w jednym miejscu Uwagi Właściwości beana powinny być stosowane dla zmiennych w trakcie działania programu Wpisy w pliku są prostsze niż zmienne w kodzie programu
4 Wyświetlanie stałych komunikatów 1. Utworzenie pliku.properties Zawiera strukturę klucz=wartość Jego miejsce to WEB-INF/classes W przypadku eclipse plik jest w katalogu src 2. Deklaracja resource-bundle w pliku faces-config.xml base-name zawiera nazwę pliku var to nazwa mapy używanej w plikach Przykład <resource-bundle> <base-name>messages</base-name> <var>msg</var> </resource-bundle> 3. Teksty wyświetlane są korzystając z języka wyrażeń EL #{msg.nazwaklucza}
5 Wyświetlanie stałych komunikatów (wersja z podkatalogiem) 1. Utworzenie pliku.properties Zawiera strukturę klucz=wartość Jego miejsce to WEB-INF/classes/resources W eclipse w katalogu src tworzy się package resources 2. Deklaracja resource-bundle w pliku faces-config base-name zawiera nazwę pliku var to nazwa mapy używanej w plikach Przykład <resource-bundle> <base-name>resource.messages</base-name> <var>msg</var> </resource-bundle> 3. Teksty wyświetlane są korzystając z języka wyrażeń EL #{msg.nazwaklucza}
6 Konfiguracja w faces-config Tag <resource-bundle> należy umieścić w tagu <application> <?xml version="1.0" encoding="utf-8"?> <faces-config > <application> <resource-bundle> <base-name>message</base-name> <var>msg</var> </resource-bundle> </application> </faces-config>
7 Przykład pliku src/message.properties registrationtitle=rejestracja registrationtext=proszę podać swoje imię, nazwisko i adres . firstnameprompt=podaj swoje imię lastnameprompt=podaj swoje nazwisko addressprompt=podaj swój adres buttonlabel=zarejestruj successtitle=sukces successtext=zarejestrowałeś się pomyślnie. Plik jest w katalogu: /WEB-INF/classes/message.properties Wpis do faces-config.xml <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> Wpisy na stronach z użyciem języka wyrażeń #{msgs.firstnameprompt}
8 Przykład plik faces-config.xml <?xml version="1.0"?> <faces-config > <application> <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> </application> </faces-config>
9 Przykład rejestracja.xhtml <!DOCTYPE > <html xmlns=" xmlns:h=" <h:head> <title>#{msgs.registrationtitle}</title> </h:head> <h:body> <table border="5" align="center"> <tr> <th class="title">#{msgs.registrationtitle}</th> </tr> </table> <h3>#{msgs.registrationtext}</h3>
10 Przykład rejestracja.xhtml <h:form> #{msgs.firstnameprompt}: <h:inputtext value="#{person1.firstname}"/> <br/> #{msgs.lastnameprompt}: <h:inputtext value="#{person1.lastname}"/> <br/> #{msgs. addressprompt}: <h:inputtext value="#{person1. address}"/> <br/> <h:commandbutton value="#{msgs.buttonlabel}" action="#{person1.doregistration}"/> </h:form> </h:body></html>
11 Przykład Person.java public abstract class Person { private String firstname, lastname, address; public String getfirstname() { return(firstname); } public void setfirstname(string firstname) { this.firstname = firstname; } // get/setlastname, get/set address } public abstract String doregistration();
12 Przykład public class Person1 extends Person { public String doregistration() { } return( sukces"); }
13 Przykład sukces.xhtml <!DOCTYPE > <html xmlns=" xmlns:h=" <h:head><title>#{msgs.successtitle}</title> </h:head> <h:body> <table border="5" align="center"> <tr><th class="title">#{msgs.successtitle}</th></tr> </table> <p>#{msgs.successtext}</p> <ul> <li>#{person1.firstname}</li> <li>#{person1.lastname}</li> <li>#{person1. address}</li> </ul> </h:body></html>
14 Komunikaty parametryzowane Założenia Cel Teksty przechowywane są w pliku, każdy z tekstów posiada swoją nazwę. Część tekstu może być modyfikowana Teksty są tworzone bardziej elastyczne Części tekstu są przekazywane do tekstu komunikatu Uwagi Teksty nie są statyczne, ale ich część jest wciąż stała
15 Wyświetlenie komunikatów parametryzowanych 1. Tworzenie pliku.properties Użycie zapisu {0}, {1}, {2} itd. Teksty zapisane w formie: klucz=wartość {0} wartość {1} 2. Deklaracja pliku w resource-bundle Podobnie jak wcześniej 3. Wyświetlanie komunikatów przy użyciu h:outputformat Tekst wyświetlany jest przy pomocy tagu <h:outputformat >, dane przekazywane są poprzez tag f:param <h:outputformat value="#{msgs.etykieta}"> <f:param value="wartosc wpisana w miejsce {0}"/> <f:param value="#{jakisbean.wartoscobliczonaw1}"/> </h:outputformat>
16 Przykład message2.properties registrationtitle=rejestracja firstname=imię lastname=nazwisko address=adres registrationtext=proszę podać swoje {0}, {1} i {2}. prompt=podaj {0} buttonlabel=zarejestruj successtitle=sukces successtext=zarejestrowałeś się pomyślnie.
17 Przykład plik faces-config.xml <?xml version="1.0"?> <faces-config > <application> <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> <resource-bundle> <base-name>messages2</base-name> <var>msgs2</var> </resource-bundle> </application> </faces-config>
18 Przykład rejestracja2.xhtml <!DOCTYPE > <html xmlns=" xmlns:f=" xmlns:h=" <h:head><title>#{msgs2.registrationtitle}</title> <h3> <h:outputformat value="#{msgs2.registrationtext}"> <f:param value="#{msgs2.firstname}"/> <f:param value="#{msgs2.lastname}"/> <f:param value="#{msgs2. address}"/> </h:outputformat>
19 Przykład public class Person2 extends Person { public String doregistration() { } return("sukces2"); }
20 Przykład sukces2.xhtml <!DOCTYPE > <html xmlns=" xmlns:h=" <h:head><title>#{msgs2.successtitle}</title> </h:head> <h:body> <table border="5" align="center"> <tr><th class="title">#{msgs2.successtitle}</th></tr> </table> <h3>#{msgs2.successtext}</h3> <ul> <li>#{msgs2.firstname}: #{person2.firstname}</li> <li>#{msgs2.lastname}: #{person2.lastname}</li> <li>#{msgs2. address}: #{person2. address}</li> </ul> </h:body></html>
21 Wielojęzyczność Założenia Cel Przechowywanie wielu wersji pliku properties w zależności od języka Strony wyświetlane są w wielu językach Uwaga Sposób na ustawienie języka w zależności od języka przeglądarki
22 Wielojęzyczność 1. Tworzenie wielu podobnych plików.properties Pliki: message.properties, message_en.properties, message_de.properties 2. Użycie f:view z atrybutem locale <f:view locale="#{facescontext.externalcontext.requestlocale} > Określa język na podstawie języka przeglądarki Można jednak ustawić język ręcznie 3. Deklaracja plików w resource-bundle Wersja języka dobierana jest automatycznie 4. Korzystanie z h:outputformat i języka wyrażeń Jak poprzednio
23 Przykład pliki.properties message.properties company=nazwafirmy.com feature=twoje {0}: firstname=imię message_en.properties feature=your {0}: firstname=first name
24 Przykład faces-config.xml bez zmian <?xml version="1.0"?> <faces-config > <application> <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> </application> </faces-config>
25 Przykład plik xhtml <!DOCTYPE > <html xmlns=" xmlns:f=" xmlns:h=" <f:view locale="#{facescontext.externalcontext.requestlocale}"> <h1>#{msgs.company}</h1> <h2> <h:outputformat value="#{msgs.feature}"> <f:param value="#{msgs.firstname}"/> </h:outputformat> </h2> <img src="swimming-pool.jpg" /> </f:view> </html>
26 Działanie programu Polski nazwafirmy.com Twoje imię: Angielski nazwafirmy.com Your first name:
27 Przykład message2.properties registrationtitle=rejestracja firstname=imię lastname=nazwisko address=adres registrationtext=proszę podać swoje {0}, {1} i {2}. prompt=podaj {0} buttonlabel=zarejestruj successtitle=sukces successtext=zarejestrowałeś się pomyślnie.
28 Przykład mesages2_en.properties registrationtitle=registration firstname=first Name lastname=last Name address= Address registrationtext=please Enter Your {0}, {1}, and {2}. prompt=enter {0} buttonlabel=register Me successtitle=success successtext=you Registered Successfully.
29 Przykład messages2_fr.properties registrationtitle=enregistrement firstname=prénom lastname=nom address=adresse électronique registrationtext=merci de Entrer Votre {0}, {1}, et {2}. prompt=entrez Votre {0} buttonlabel=enregistrez Moi successtitle=succès successtext=vous Avez Enregistré Avec Succès.
30 Przykład plik faces-config.xml <?xml version="1.0"?> <faces-config > <application> <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> <resource-bundle> <base-name>messages2</base-name> <var>msgs2</var> </resource-bundle> </application> </faces-config>
31 Przykład rejestracja3.xhtml <!DOCTYPE > <html xmlns=" xmlns:f=" xmlns:h=" <f:view locale="#{facescontext.externalcontext.requestlocale}"> <h:head><title>#{msgs2.registrationtitle}</title> <h3> <h:outputformat value="#{msgs2.registrationtext}"> <f:param value="#{msgs2.firstname}"/> <f:param value="#{msgs2.lastname}"/> <f:param value="#{msgs2. address}"/> </h:outputformat> </f:view> </html>
32 Przykład sukces2.xhtml <!DOCTYPE > <html xmlns=" xmlns:h=" <f:view locale="#{facescontext.externalcontext.requestlocale}"> <h:head><title>#{msgs2.successtitle}</title> </h:head> <h:body> <table border="5" align="center"> <tr><th class="title">#{msgs2.successtitle}</th></tr> </table> <h3>#{msgs2.successtext}</h3> <ul> <li>#{msgs2.firstname}: #{person2.firstname}</li> <li>#{msgs2.lastname}: #{person2.lastname}</li> <li>#{msgs2. address}: #{person2. address}</li> </ul> </h:body> </f:view> </html>
33 Zdarzenia Dwie możliwości obsługi zdarzeń Zdarzenia, który rozpoczyna proces działający po stronie logiki systemu (action) Zdarzenia, na które ma wpływ zachowanie użytkownika w GUI (action event, value change event) Dwa typy zdarzeń: Action controllers dotyczy przekazywania formy (submit) Wykonywana jest po wypełnieniu beana Wykonywana jest po walidacji danych Zwraca łańcuch znaków odpowiadający Event listeners odnosi się do zdarzeń związanych w elementami formatki Często wykonywany jest przed wypełnieniem beana Często omija walidację Nigdy nie wpływa na efekt nawigacji
34 Typy Event Listeners Action Listener Wywoływane przez przyciski, image maps i odwołania (hypertext links) <h:commandbutton value="...".../> <h:commandbutton image="...".../> <h:commandlink.../> Automatycznie wywołuje submit formy ValueChangeListener Wywoływane przez combobox, checkbox, radio button, pola tekstowe i inne <h:selectonemenu.../> <h:selectbooleancheckbox.../> <h:selectoneradio.../> <h:inputtext.../> Nie wywołuje automatycznie submit formy
35 ActionListener Przycisk może wykonać submit na formie i rozpocząć działanie logiki systemu <h:commandbutton action="..."...> Inne działanie przycisku Użycie <h:commandbutton actionlistener="...".../> Ten proces może zostać wykonany przed wypełnieniem beana i przed procesem walidacji Użycie atrybutu immediate pozwoli na odpalenie zdarzenia przed procesem walidacji <h:commandbutton actionlistener="..." immediate="true".../>
36 Implementacja ActionListener Słuchacz (Listener) nie potrzebuje być jednocześnie w klasie beanu-formy Czasami tworzy się oddzielne beany do obsługi informacji z GUI Metoda otrzymuje ActionEvent jako argument Zwracany jest typ void ActionEvent jest w paczce javax.faces.event ActionEvent posiada funkcję getcomponent pozwalające otrzymać referencję do componentu formy (UIComponent) Przykład: public void somemethod(actionevent event) { dosomesideeffects(); }
37 Przykład Założenie W programie przyciski służą do zmiany wielkości wyświetlanej czcionki Podejście Nazwa stylu dla elementu body jest przechowywana w session beanie <h:body styleclass="#{formsettings.bodystyleclass}"> Dwa przyciski uruchamiają action listeners, które z kolei zmieniają styl elementu body <h:commandbutton value="#{msgs.normalfont}" actionlistener="#{formsettings.setnormalsize} immediate="true"/> <h:commandbutton value="#{msgs.largefont} actionlistener="#{formsettings.setlargesize} immediate="true"/>
38 Przykład rejestracja.xhtml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE > <html xmlns=" > <h:head> <title>#{msgs.registrationtitle}</title> <link href="./css/styles.css" rel="stylesheet" type="text/css"/> </h:head> <h:body styleclass="#{formsettings.bodystyleclass}"> <h:form> <legend>#{msgs.registrationtitle}</legend> <h:outputformat value="#{msgs.prompt}"> <f:param value="#{msgs.firstname}"/> </h:outputformat>: <h:inputtext value="#{person.firstname}"/> <h:commandbutton value="#{msgs.buttonlabel}" action="#{person.doregistration}"/>
39 Przykład rejestracja.xhtml cd. <br/> <div align="center"> <h:commandbutton value="#{msgs.normalfont}" actionlistener="#{formsettings.setnormalsize}" immediate="true"/> <h:commandbutton value="#{msgs.largefont}" actionlistener="#{formsettings.setlargesize}" immediate="true"/> </div> </h:form> </h:body> </html>
40 public class FormSettings implements Serializable { private boolean isnormalsize = true; public String getbodystyleclass() { if (isnormalsize) { return ("normalsize"); } else { return ("largesize"); } } public void setnormalsize(actionevent event) { isnormalsize = true; } } public void setlargesize(actionevent event) { isnormalsize = false; }
41 Przykład public class Person { private String firstname, lastname, address; // gettery i settery } public String doregistration() { if ("".equals(firstname) && "".equals(lastname) && "".equals( address)) { return("zle-dane"); } else { return("rejestracja-ok"); } }
42 Przykład faces-config.xml <?xml version="1.0"?> <faces-config > <application> <resource-bundle> <base-name>messages</base-name> <var>msgs</var> </resource-bundle> </application> </faces-config>
43 Przykład messages.properties registrationtitle=rejestracja firstname=imię lastname=nazwisko address=adres registrationtext=proszę podać swoje {0}, {1} i {2}. prompt=podaj {0} buttonlabel=zarejestruj successtitle=sukces successtext=zarejestrowałeś się pomyślnie. switchlanguage=english normalfont=normalna czcionka largefont=duża czcionka errortitle=błąd! missingdata=złe dane. Spróbuj ponownie.
44 Przykład - styles.css.normalsize { font-size: 110% }.largesize { font-size: 200% }
45 Przykład zle-dane.xhtml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE > <html > <h:head> <link href="./css/styles.css" rel="stylesheet" type="text/css"/> <title>#{msgs.errortitle}</title> </h:head> <h:body styleclass="#{formsettings.bodystyleclass}"> <h1>#{msgs.errortitle}</h1> </h:body> </html>
46 Przykład rejestracja-ok.xhtml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE > <html "> <h:head> <link href="./css/styles.css" rel="stylesheet" type="text/css"/> <title>#{msgs.successtext}</title> </h:head> <h:body styleclass="#{formsettings.bodystyleclass}"> <h1>#{msgs.successtext}</h1> <ul> <li>#{msgs.firstname}: #{person.firstname}</li> <li>#{msgs.lastname}: #{person.lastname}</li> <li>#{msgs. address}: #{person. address}</li> </ul> </h:body> </html>
47 Programowa zmiana języka Dwie metody: Wywołanie setlocale FacesContext.getCurrentInstance(). getviewroot().setlocale(currentlocale); Użycie atrybutu locale w elemencie f:view <f:view locale="#{formsettings.currentlocale}"> Odczyt ustawień językowych z przeglądarki: <f:view locale="#{facescontext.externalcontext.requestlocale}"> Powinny być stosowane jednocześnie
48 Przykład Założenia: Dodanie do poprzedniego przykładu obsługi języka angielskiego Podejście: Utworzenie dwóch plików message.properties i message_en.properties Dodanie przycisku, który wywołuje zdarzenie action listener, które z kolei zmienia ustawienia językowe Dodanie <f:view locale="#{formsettings.locale}" >
49 Przykład rejestruj2.xhtml <!DOCTYPE > <html > <f:view locale="#{formsettings.locale}"> <! Ta sama zawartość jak rejestruj.xhtml i dodanie przycisku--> <h:commandbutton value="#{msgs.switchlanguage} actionlistener="#{formsettings.swaplocale} immediate="true"/> </f:view></html>
50 public class FormSettings implements Serializable { // private boolean isenglish = true; private final Locale ENGLISH = Locale.ENGLISH; private final Locale POLISH = new Locale("pl"); public Locale getlocale() { if (isenglish) { return(english); } else { return(polish); } }
51 Przykład FormSettings.java cd public void swaplocale(actionevent event) { switchlocale(); } private void switchlocale() { isenglish =!isenglish; Locale newlocale; if (isenglish) { newlocale = ENGLISH; } else { newlocale = POLISH; } FacesContext.getCurrentInstance().getViewRoot().setLocale(newLocale); }
52 Przykład message_en.properties registrationtitle=registration firstname=first Name lastname=last Name address= Address registrationtext=please Enter Your {0}, {1}, and {2}. prompt=enter {0} buttonlabel=register Me successtitle=success successtext=you Registered Successfully. switchlanguage=polski normalfont=normal Font largefont=large Font errortitle=error! missingdata=missing input. Please try again.
53 Przykład
54 ValueChangeListener ValueChangeListener jest używany przy combobox, listbox, radio button, checkbox, polach tekstowych itd. Różnice do ActionListener Forma nie jest submitowana Do wykonania submit niezbędna jest JavaScript onclick="submit()" lub onchange="submit()" Zdarzenie niekompatybilne dla Firefox i Internet Explorer Firefox, Opera, Chrome wywołuje metodę, gdy następuje zmiana w wartości kontrolki Internet Explorer wywołuje metodę, gdy nastąpi zmiana i zmieni się fokus OnClick powinno działać wszędzie
55 Implementacja ValueChangeListener Metoda przyjmuje ValueChangeEvent jako argument Metody klasy ValueChangeEvent: getcomponent podobnie jak w ActionListener getoldvalue poprzednia wartość w kontrolce getnewvalue nowa wartość kontrolki Przykład: public void somemethod(valuechangeevent event) { Boolean flag = (Boolean)event.getNewValue(); wykonajcoszflaga(flag); }
56 Przykład Założenie Użycie checkboxa do zmiany języka zamiast przycisku Podejście Utworzyć checkboxa, który uruchomi valuechangelistener, która zmieni język valuechangelistener="#{formsettings.swaplocale2}" Checkbox wywoła submit na formatce Checkbox zawsze jest wyłączony, gdy strona jest wyświetlana na nowo value="#{formsettings.checked} ischecked zwraca zawsze false
57 Przykład rejestracja3.xhtml <!DOCTYPE > <html > <f:view locale="#{formsettings.locale}"> <! Taki sam kod jak w rejestracja2.xhtml, zamiast ostatniego przcisku h:commandbutton jest poniższy checkbox --> <h:selectbooleancheckbox value="#{formsettings.checked}" valuechangelistener="#{formsettings.swaplocale2}" onclick="submit()" immediate="true"/> </f:view></html>
58 Przykład FormSettings.java public void swaplocale2(valuechangeevent event) { Boolean flag = (Boolean)event.getNewValue(); if (flag) { switchlocale(); } } public boolean getchecked() { return false; } public void setchecked(boolean checked) { }
59 Prezentacja danych z kolekcji h:datatable <ui:repeat>
60 h:datatable <h:datatable var="row" //nazwa zmiennej przechowującej każdy element kolekcji value="#{somebean.somedata}" //dane kolekcja (lista, tablica, itp.) border="1" //szerokość ramki styleclass="css-table-style" //nazwa klasy dla tabeli (table class="...) headerclass="css-heading-style" //nazwa klasy dla pierwszego wiersza rowclasses="evenrow,oddrow"> //klasa dla parzystego i nieparzystego wiesza <h:column> <f:facet name="header">col 1 Title</f:facet> //tekst nagłówka #{row.someproperty} //wartość w poszczególnych wierszach </h:column> <h:column> <f:facet name="header">col 2 Title</f:facet> //tekst kolejnego nagłówka wiersza #{row.someotherproperty} //wartość w poszczególnych wierszach w kolumnie 2 </h:column>... </h:datatable>
61 h:datatable - przykład Klasa Klient public class Klient { private int id; private String imie; private String nazwisko; private Konto [] konta; Klasa public class Klienci { public static List<Klient> klients; public List<Klient> getklients () { if (klients ==null) { klients = new ArrayList<Klient>(); klients.add( new Klient(1, "Jan", "Kowalski", new Konto[] { new Konto("1111", 10), new Konto("2222", 1232)} )); klients.add( new Klient(2, "Anna", "Nowak", new Konto[] { new Konto("2333", -234), new Konto("2334", 0), new Konto("3422", 1002)} )); klients.add( new Klient(3, "Jacek", "Iksinski", new Konto[] { new Konto("7434", 1234)} )); } return klients; } }
62 h:datatable przykład cd..xhtml <h:datatable var="klient" value="#{klienci.klients}" border="1" styleclass="tablica" headerclass="naglowek" > <h:column> <f:facet name="header">id</f:facet> #{klient.id} </h:column> <h:column> <f:facet name="header">nazwisko</f:facet> #{klient.nazwisko} </h:column> <h:column> <f:facet name="header">imie</f:facet> #{klient.imie} </h:column> </h:datatable>
63 h:datatable przykład cd. css table.tablica { background-color: lightgray; border-spacing: 0px; } table.tablica td { width:200px; }.naglowek { background-color: black; color: white; }
64
65 h:datatable inny przykład <h:datatable var="klient" value="#{klienci.klients}" styleclass="tablica" headerclass="naglowek"> <h:column> <f:facet name="header">id</f:facet> #{klient.id} </h:column> <h:column> <f:facet name="header">nazwisko</f:facet> #{klient.nazwisko} </h:column> <h:column> <f:facet name="header">imie</f:facet> #{klient.imie} </h:column> <h:column> <f:facet name="header">konta</f:facet> <h:datatable var="konto" value="#{klient.konta}" styleclass="tablica" rowclasses="odd,even"> <h:column> <f:facet name="header">numer</f:facet> #{konto.numer} </h:column> <h:column> <f:facet name="header">saldo</f:facet> #{konto.saldo} </h:column> </h:datatable> </h:column> </h:datatable>
66 h:datatable inny przykład table.tablica { background-color: lightgray; border-spacing: 0px; } table.tablica td { width:200px; }.naglowek { background-color: black; color: white; }.odd { }.even { } background-color:yellow; background-color:orange;
67
68 ui:repeat <html... xmlns:ui=" <ui:repeat var="somevar" value="#{somebean.somecollection}"> <somehtml> #{somevar.someproperty} </somehtml> </ui:repeat> Odpowiednik: for(sometype somevar: somecollection) { dosomethingwith(somevar); }
69 ui:repeat przykład, pętla zagnieżdzona <ui:repeat var="klient" value="#{klienci.klients}"> <h3>#{klient.id}. #{klient.nazwisko}, #{klient.imie}</h3> <ul> <ui:repeat var="konto" value="#{klient.konta}"> <li> #{konto.numer}: #{konto.saldo} </li> </ui:repeat> </ul> </ui:repeat>
70
71 ui:repeat <ui:repeat var="somevar" value="#{somebean.somecollection}" varstatus ="statusvariable" offset ="..." size ="..." step="...">... </ui:repeat> //od którego elementu rozpoczyna się pętla //liczba elementów kolekcji //skok statusvariable.first/last (boolean) pierwszy ostatni element statusvariable.even/odd (boolean) parzysty, nieparzysty element statusvariable.index (int) numer aktualnego elementu kolekcji
72 Przykład <ui:repeat var="klient" value="#{klienci.klients}"> <h3>#{klient.id}. #{klient.nazwisko}, #{klient.imie}</h3> <ul> <ui:repeat var="konto" value="#{klient.konta}" varstatus="status"> <li> #{konto.numer}: #{konto.saldo} <h:outputtext value="," rendered="#{!status.last}"/> <h:outputtext value="." rendered="#{status.last}"/> </li> </ui:repeat> </ul> </ui:repeat>
73
74 Szablony Szablon (template.xhtml) <head> <title> <ui:insert name="title" > Domyślny tytuł </ui:insert> </title> </head> <body> <ui:insert name="body" > Domyśla zawartość </ui:insert> </body> Strona korzystająca z szablonu (index.xhtml): <ui:composition template="/template.xhtml"> <ui:define name="title>strona startowa</ui:define> <ui:define name="body"> Zawartość strony głównej <ui:define> </ui:composition>
75 Przykład template.xhtml <h:head> </h:head> <h:body> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link href="./styles.css" rel="stylesheet" type="text/css"/> <title><ui:insert name="title">strona szablonu</ui:insert></title> <div id="container"> <div id="top"> <ui:insert name="header">nagłówek</ui:insert> </div> <div id="leftnav"> <ui:insert name="left_menu">menu</ui:insert> </div> <div id="content"> <ui:insert name="content">content</ui:insert> </div> <div id="footer"> <ui:insert name="content">data ostatniej aktualizacji: </ui:insert> </div> </div> </h:body>
76
77 Przykład index.xhtml <ui:composition template="/template.xhtml"> <ui:define name="title">strona główna</ui:define> <ui:define name="header"><h1>example.com</h1></ui:define> <ui:define name="left_menu"> <h3>menu główne</h3> <a href="stronaa.xhtml">strona a</a> <a href="#">strona B</a> <a href="#">niesamowita strona C</a> <a href="#">strona D</a> <a href="#">o nas</a> </ui:define> </ui:composition> <ui:define name="content"> <h3>wprowadzenie</h3> <p> Lorem ipsum </ui:define>
78
79 Przykład stronaa.xhtml <h:head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link href="./styles.css" rel="stylesheet" type="text/css"/> </h:head> <h:body> <ui:composition template="/index.xhtml"> <ui:define name="title">strona A</ui:define> <ui:define name="content"> <h3>strona A</h3> <p> Lorem ipsum dolor </ui:define> </ui:composition> </h:body>
80 Walidacja Walidacja wymaga wykonania dwóch czynności: Sprawdzenie, czy wszystkie wartości pól są w odpowiednim formacie Ponowne wyświetlenie strony, gdy wartości są złe lub niepoprawne Ręczna walidacja Odczytanie wartości pól edycyjnych Sprawdzenie wartości w setterach i akcji kontrolera Zwrócenie null-a dla odświeżenia strony Tworzenie komunikatów o błędach i dodawanie ich do FacesMessage Wyświetlenie błędów przy pomocy h:messages Ukryta walidacja Stosowanie zmiennych typu int, double, dodanie required Przeładowanie strony w przypadku błędu konwersji danych h:message wyświetla komunikaty Jawna walidacja Użycie f:validatelength, f:validatedoublerange, f:validatelongrange, f:validateregex Odświeżenie strony w przypadku błędu, h:message wyświetla komunikat
81 Ręczna walidacja Settery przyjmują tylko wartości typu String Konwersja na inny typ przeprowadzana jest wewnątrz kodu Blok try/catch używany jest do przechwycenia błędnych danych Akcja kontrolera sprawdza wszystkie zmienne Gdy któraś z danych jest błędna: dodawany jest nowy komunikat o błędzie funkcją FacesContext.addMessage Zwracana jest wartość null Błąd wyświetlany jest na stronie poprzez h:messages
82 Wyświetlanie informacji o błędzie walidacji h:messages wyświetla zbiór komunikatów Umieszczany wewnątrz h:form <h:form><h:messages/> </h:form> Można dodać style Błędy wyświetlane są jako lista lub tabela h:message wyświetlenie indywidualnego błędu Użycie: <h:inputtext id="idelementu" /> <h:message for=" idelementu"/>
83 Ukryta automatyczna walidacja Właściwości w beanie posiadają typy proste int/integer, long/long, double/double, boolean/boolean JSF konwertuje wartości automatycznie Konwersja przy pomocy funkcji Integer.parseInt, Double.parseDouble itd. Gdy występuje błąd konwersji, strona jest wyświetlana ponownie Komunikat o błędzie jest dodawany automatycznie Można samemu tworzyć komunikaty o błędzie przy pomocy atrybutu conventermessage Atrybut required wymusza wypełnienie pola edycyjnego Wymuszenie może być w każdym z elementów JSF Własny komunikat o błędzie można dodać korzystając z atrybutu requiredmessage h:message wyświetla błąd. Gdy nie ma błędu, komunikat nie jest wyświetlany
84 Przykład - public class OfertaBean { private String klientid; private String slowokluczowe; private Double kwota; private Integer ilosc; public String dooferta() { //wykonaj logike aplikacji return("pokaz-oferte"); } public Double getkwota() { return kwota; } public void setkwota(double kwota) { this.kwota = kwota; }
85 Przykład wprowadz-oferte.xhtml <h:form> <h:messages styleclass="error"/> Klient ID: <h:inputtext value="#{ofertabean.klientid}" required="true" requiredmessage="musisz podac ID klienta" id="klientid"/> <h:message for="klientid" styleclass="error"/> <br/> Słowo kluczowe: <h:inputtext value="#{ofertabean.slowokluczowe}" required="true" requiredmessage="musisz podac slowo kluczowe" id="slowokluczowe" /> <h:message for="slowokluczowe" styleclass="error"/> <br/>
86 Przykład wprowadz-oferte.xhtml cd Kwota zł: <h:inputtext value="#{ofertabean.kwota}" required="true" requiredmessage="musisz podac kwotę" convertermessage="wprowadzona wartość musi być liczbą" id="kwota"/> <h:message for="kwota" styleclass="error"/> <br/> Ilość: <h:inputtext value="#{ofertabean.ilosc}" required="true" requiredmessage="musisz podac ilość" convertermessage="wprowadzona wartość musi być liczbą" id="ilosc"/> <h:message for="ilosc" styleclass="error"/> <br/> <h:commandbutton value="wprowadź" action="#{ofertabean.dooferta}" /> </h:form>
87
88 Jawna walidacja walidatory i konwentery f:validatelength minimum maximum f:validatelongrange minimum maximum f:validatedoublerange minimum maximum f:validateregex pattern f:conventernumber curencycode, currencysymbol grupingused integeronly Locale max(min)fractiondigits max(min)integerdigits pattern (DecimalFormat) type: number, currency, procentage f:conventerdatetime type: date, time, both datestyle, timestyle pattern (SimpleDateFormat) locale timezone
89 Konwersja i walidacja Znaczniki f:convertx i f:validatex sprawdzają format i odświeżają stronę, gdy wartości nie są poprawne f:convertx może zmienić format wyświetlanej zmiennej Działa z h:outputtext Przykład <h:inputtext value="#{zamowieniebean.kod}"> <f:convertnumber maxfractiondigits="2"/> </h:inputtext> Wyświetla 0.75 przy wartości <h:outputtext value="#{zamowieniebean.kod}"> <f:convertnumber type="percentage"/> </h:inputtext> Wyświetla 75%
90 Przykład wprowadz-oferte2.xhtml <h:messages styleclass="error"/> Klient ID: <h:inputtext value="#{ofertabean.klientid}" required="true" requiredmessage="musisz podac ID klienta" validatormessage="id musi posiadać od 5 do 6 znaków" id="klientid" > <f:validatelength minimum="5" maximum="6"/> </h:inputtext> <h:message for="klientid" styleclass="error"/> <br/>.
91 Przykład wprowadz-oferte2.xhtml cd Słowo kluczowe: <h:inputtext value="#{ofertabean.slowokluczowe}" required="true" requiredmessage="musisz podac slowo kluczowe" validatormessage="słowo kluczowe ma posiadać min. 3 znaki" id="slowokluczowe" > <f:validatelength minimum="3"/> </h:inputtext> <h:message for="slowokluczowe" styleclass="error"/> <br/>
92 Przykład wprowadz-oferte2.xhtml cd Kwota zł: <h:inputtext value="#{ofertabean.kwota}" required="true" requiredmessage="musisz podac kwotę" convertermessage="wprowadzona wartość musi być liczbą" validatormessage="kowta musi wynosić min zł" id="kwota"> <f:validatedoublerange minimum="0.10"/> </h:inputtext> <h:message for="kwota" styleclass="error"/> <br/>
93 Przykład wprowadz-oferte2.xhtml cd Ilość: <h:inputtext value="#{ofertabean.ilosc}" required="true" requiredmessage="musisz podac ilość" convertermessage="wprowadzona wartość musi być liczbą" validatormessage="ilość zamówienia musi wynieść min 15" id="ilosc"> <f:validatelongrange minimum="15"/> </h:inputtext> <h:message for="ilosc" styleclass="error"/> <br/>
94
Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz
Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie
Konwersja danych. Programowanie komponentowe 4. wg http://docs.oracle.com/javaee/6/tutorial/doc/ bnaph.html
Konwersja danych wg http://docs.oracle.com/javaee/6/tutorial/doc/ bnaph.html Programowanie komponentowe 4 Znaczniki typu f: 1. Podstawowe znaczniki JSF Znaczniki do obsługi zdarzeń f:actionlistener f:phaselistener
Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz
Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Konfigurowanie edytora programu za pomocą Tools/Options/Editor Konfigurowanie edytora programu za pomocą
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Zastosowanie słuchaczy zdarzeń wg
Zastosowanie słuchaczy zdarzeń wg https://docs.oracle.com/javaee/7/jeett.pdf Technologie internetowe 6 1. Obsługa zdarzeń typu valuechangelistener Rejestracja słuchaczy zdarzeń typu valuechangelistener
HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.
Dokumenty HTML5 Każda przeglądarka dostępna na rynku obsługuje HTML5 w różnym stopniu. Możesz sprawdzić swoją testerem dostępnym pod adresem (http://html5test.com). HTML5 wprowadza cały zestaw zupełnie
Rys.2.1. Drzewo modelu DOM [1]
1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model
Złożone komponenty JSF wg
Złożone komponenty JSF wg https://docs.oracle.com/javaee/7/jeett.pdf http://www.coreservlets.com Technologie internetowe 9 1 Opis znaczników obsługiwanych przez Facelets (tutorial EE 7) 2 Przegląd znaczników
Wprowadzenie do języka HTML
Radosław Rudnicki (joix@mat.umk.pl) 05.09.2009 r. Wprowadzenie do języka HTML Do tworzenia stron internetowych wystarczy użyd zwykłego Notatnika oferowanego przez system Windows, czy dowolny inny system
JavaServer Faces (JSF)
JavaServer Faces (JSF) Autor wykładu: Marek Wojciechowski Plan wykładu JSF jako infrastruktura aplikacji WWW JSF.x Nowe cechy JSF.0 Java Enterprise Edition (Java EE) JavaServer Faces (JSF) Java Enterprise
Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń
Programowanie wielowarstwowe i komponentowe JSP, JSF
Programowanie wielowarstwowe i komponentowe JSP, JSF JSP Cykl życia strony JSP Strony JSP są przetwarzane jako servlety, więc dziedziczą po nich wiele cech Kiedy następuje odwołanie do strony JSP, jest
Programowanie wielowarstwowe i komponentowe
Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.
Złożone komponenty JSF wg
Złożone komponenty JSF wg https://docs.oracle.com/javaee/7/jeett.pdf http://www.coreservlets.com Technologie internetowe 8 Technologie internetowe 8, Zofia 1 Opis znaczników obsługiwanych przez Facelets
6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )
Wielowarstwowe aplikacje internetowe - laboratorium JavaServer Faces (JSF) Do realizacji ćwiczenia potrzebne jest zintegrowane środowisko programistyczne Oracle JDeveloper w wersji 10.1.3 lub wyŝszej.
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Programowanie w Internecie
Programowanie w Internecie Paweł Kasprowski pawel@kasprowski.pl Aplikacja internetowa Definicja: Aplikacja uruchamiana na serwerze WWW komunikująca się z użytkownikiem za pomocą przeglądarki internetowej
Test z przedmiotu. Witryny i aplikacje internetowe
Test z przedmiotu Witryny i aplikacje internetowe Tylko jedna odpowiedź jest poprawna!!! Zadanie 1 Kod języka HTML przedstawi tabelę składającą się z dwóch
Wykład 03 JavaScript. Michał Drabik
Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Projektowanie i wdrażanie systemów informatycznych. Dodanie aplikacji klienta uruchamianej przez przeglądarkę kontynuacja projektu:
Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO zawierającej aplikację klienta typu EE oraz internetową aplikację uruchamianą za pomocą przeglądarki. Projektowanie
Java Server Faces narzędzie do implementacji w wy prezentacji
Java Server Faces narzędzie do implementacji w wy prezentacji pojęcie komponentu powiązanie z modelem danych widok (View) jako drzewo komponentów obiekty pomocnicze: konwertery, walidatory, obsługa zdarzeń
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
JAVA SERVER FACES jest to nowy framework Javy do tworzenia interface u użytkownika dla aplikacji sieciowych.
Czym jest JSF? JAVA SERVER FACES jest to nowy framework Javy do tworzenia interface u użytkownika dla aplikacji sieciowych. Wykorzystuje cykl życia (lifecycle) aplikacji internetowej za pośrednictwem kontrolera
akademia androida Składowanie danych część VI
akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List. Laboratorium 5 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_5, Zofia Kruczkiewicz
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Dokument hipertekstowy
Dokument hipertekstowy Laboratorium 2 Podstawy HTML mgr inż. Krzysztof Wróbel Katedra Lingwistyki Komputerowej Cel poznanie podstawowych elementów HTML stworzenie strony ćwiczenie zadanie domowe Konstrukcja
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza HTML z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed wysłaniem
Java Server Faces - wprowadzenie
Java Server Faces - wprowadzenie Java Server Faces (JSF) jest najpopularniejszą technologią opartą o język JAVA, służącą do tworzenia aplikacji webowych (dynamicznych stron WWW). pomimo że JSF i EJB wchodzą
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]
1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA JavaScript tak
PHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Podstawowe informacje o technologii Java Persistence API - przykład
Podstawowe informacje o technologii Java Persistence API - przykład na podstawie https://docs.oracle.com/javaee/7/jeett.pdf Programowanie komponentowe 3_2 1 1. Wykonanie kopii programu Sklep_6 2 1. Wykonanie
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń Laboratorium 6 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_6, Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego w lab6, które
Zajęcia 10 obsługa formularzy w PHP
Zajęcia 10 obsługa formularzy w PHP Przekazywanie danych ze strony do skryptu PHP Dane ze strony WWW do skryptu PHP przekazujemy za pomocą formularzy. W tym celu musimy stworzyć formularz (znacznik ),
BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
termin. Podobna wada 2) jak w Sklep_6
Indeks Lab1-15.10 Lab2-22.10 Lab3-6.11 Lab4-20.11 Lab5- Lab6- Lab7- Lab8- Sklep_1 8.01 ob Sklep_2 ob Sklep_3 ob Sklep_4 Sklep_5 obsklep_6 Sklep_7 ob Sklep_6_Ajax Sklep_7_Ajax ob ob Kol 5838 + - 5805 +
termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin
Indeks Lab1-15.10 Lab2-22.10 Lab3-6.11 Lab4-20.11 Lab5-27.11 Lab6- Lab7- Lab8- Sklep_1 8.01 ob Sklep_2 ob Sklep_3 ob Sklep_4 Sklep_5 ob Sklep_6 Sklep_7 obsklep_6_ajax Sklep_7_Ajax ob ob Kol 5838 + - 27.11
Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Interfejs GUI wysokiego poziomu Pojęcie
)<h:commandLink action="#{managed _produkt.dane_pro duktu}" value="ok" actionlistener="#{m anaged_produkt.
Indeks Lab1-15.10 Lab2-22.10 Lab3-6.11 Lab4-20.11 Lab5- Lab6- Lab7- Lab8- Sklep_1 ob Sklep_2 ob Sklep_3 ob Sklep_4 Sklep_5 obsklep_6 Sklep_7 ob Sklep_6_Ajax Sklep_7_Ajax ob ob Kol 5801- - + - + - Błędy:
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Ćwiczenie 8. Kontrolki serwerowe
Ćwiczenie 8 Temat: Kontrolki serwerowe ASP.NET cz.2 Cel ćwiczenia: W ramach tego ćwiczenie student zapozna się z kolejnymi kontrolkami serwerowymi oraz z metodami ich walidacji, a także z kontrolkami umożliwiającymi
Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
Dostosowywanie wyglądu aplikacji czytelnika w oparciu o oprogramowanie dlibra 5.0
Dostosowywanie wyglądu aplikacji czytelnika w oparciu o oprogramowanie dlibra 5.0 Mariusz Stanisławczyk VII Warsztaty Biblioteki Cyfrowe Plan prezentacji Przykłady istniejących bibliotek cyfrowych Pojęcia
Visual Basic for Applications. Formatki tworzenie,
Visual Basic for Applications Formatki tworzenie, sterowanie, właściwości. Podstawowe typy kontrolek: Wybrane właściwości obiektu UserForm: BackColor kolor wypełnienia tła formatki, BorderStyle fmborderstylenone/fmborderstylesingle,
termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin
Indeks Lab1-15.10 Lab2-22.10 Lab3-6.11 Lab4-20.11 Lab5- Lab6- Lab7- Lab8- Sklep_1 8.01 ob Sklep_2 ob Sklep_3 ob Sklep_4 Sklep_5 ob Sklep_6 Sklep_7 obsklep_6_ajax Sklep_7_Ajax ob ob Kol 5838 + - Błędy na
Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties
Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties Laboratorium 4 Technologie internetowe Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego
Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz
Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres
I. Wstawianie rysunków
I. Wstawianie rysunków Wstawiane rysunku Bez parametrów: Tekst alternatywny Tytuł obrazka
Programowanie komponentowe 5
Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf
Poznań Java User Group 2005. Java Server Faces. Wprowadzenie (Fakty i Mity)
Poznań Java User Group 2005 Java Server Faces Wprowadzenie (Fakty i Mity) Plan prezentacji Ograniczenia szkieletów WWW Podstawowe elementy JSF JSF krok po kroku: Warstwa wizualna Obsługa zdarzeń Nawigacja
Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz
Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie Zofia Kruczkiewicz 1. Jakie warstwy zawiera aplikacja internetowa? 2. Wymień
Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax
Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax Laboratorium 5 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_5, Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego
FORMULARZE. G. Przęczek
FORMULARZE G. Przęczek Tworzenie formularzy w HTML Podstawowe ramy formularza wyznacza znacznik który ma szereg atrybutów, które określają jego działanie. Pierwszym atrybutem jest action,
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
media Blitz wydajne sytemy szablonów
Blitz wydajne sytemy szablonów Dlaczego stosować szablony? MVC Kontroler Model Widok Co to jest Blitz? Rozszerzenie PHP stworzone przez Alexey A. Rybak a. Regularnie rozwijany od 2005 roku. Szybki i lekki
Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:
Interfejs w MFC 1. Tworzenie nowego projektu Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Następnie wybieramy opcje jak na rysunku: Następnie wybieramy
- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Dokumentacja Skryptu Mapy ver.1.1
Dokumentacja Skryptu Mapy ver.1.1 2 Dokumentacja Skryptu Mapy ver.1.1 Spis treści Dokumentacja skryptu... 3 Dodatkowe informacje i kontakt... 7 3 Dokumentacja Skryptu Mapy ver.1.1 Dokumentacja skryptu
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Ćwiczenie nr 12: Tworzenie stron internetowych z użyciem języka HTML Wstęp
Barbara Łukawska, Adam Krechowicz, Tomasz Michno Ćwiczenie nr 12: Tworzenie stron internetowych z użyciem języka HTML Wstęp Najprostszym sposobem utworzenia strony internetowej jest użycie języka HTML.
Dokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Aplikacje internetowe i rozproszone - laboratorium
Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,
Kurs programowania 2 - listy
Kurs programowania 2 - listy Listy rozwijane (ComboBox) Listy rozwijane (rozwijalne) można tworzyć przy użyciu klasy ComboBox. W tabeli poniżej właściwości udostępniane przez tę kontrolkę. Najważniejsza
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
CSS. Kaskadowe Arkusze Stylów
CSS Kaskadowe Arkusze Stylów CSS CSS = Cascading Style Sheets Style określają sposób wyświetlania zawartości elementów HTML Arkusz stylów jest zbiorem takich reguł Pojawiły się w HTML 4.0 by rozwiązać
Multimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Programowanie w Javie
Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student
Podstawowe znaczniki języka HTML.
Podstawowe znaczniki języka HTML. Struktura dokumentu. Sposób użycia i dokumentu. Między nimi umieszczana jest cała treść dokumentu. Sposób użycia Sekcja HEAD zawiera podstawowe
Tworzenie i wykorzystanie usług
Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi
Wstęp. Język HTML jest uniwersalnym jezykiem wykorzystywanym przy
HTML Wstęp Język HTML jest uniwersalnym jezykiem wykorzystywanym przy tworzeniu stron internetowych, rozpoznawanym przez wszystkie przeglądarki internetowe niezależnie od producenta. Składa on się z elementów
Projektowanie i programowanie aplikacji biznesowych. Wykład 2
Projektowanie i programowanie aplikacji biznesowych Wykład 2 Kontrolki w Windows API Aby korzystać z kontrolek należy dołączyć plik nagłówkowy o nazwie commctrl.h oraz bibliotekę o nazwie libcomctl32.a.
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Specyfikacja reklamy tekstowej i bannerowej na portalu GoldenLine.pl
Specyfikacja reklamy tekstowej i bannerowej na portalu GoldenLine.pl Spis treści Ogólne informacje... 3 Kreacje HTML5... 4 1. Formy reklamowe... 5 1.1. Link tekstowy... 5 1.2. Link tekstowy plus... 5 1.3.
Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax
Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax Laboratorium 6 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_6, Zofia Kruczkiewicz 1 Wykaz pytań dotyczących materiału wykorzystanego
za pomocą: definiujemy:
HTML CSS za pomocą: języka HTML arkusza CSS definiujemy: szkielet strony wygląd strony Struktura dokumentu html - znaczniki Znaczniki wyznaczają rodzaj zawartości. element strony
Zajęcia 4 - Wprowadzenie do Javascript
Zajęcia 4 - Wprowadzenie do Javascript Co to jest Javascript Javascript jest językiem skryptowym pozwalającym na dołączanie dodatkowej funkcjonalności do stron WWW. Jest ona najczęściej związana z modyfikacją
Integracja frameworku Wicket z serwisem Platnosci.pl.
Integracja frameworku Wicket z serwisem Platnosci.pl. Paweł Wąsowski, 157702 1. Wprowadzenie Niniejszy dokument powstał w trakcie realizacji projektu SzukamNeta.pl. Dokument zawiera praktyczne wskazówki
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza na stronie WWW z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Aplikacje internetowe
Temat: Język HTML i style CSS Aplikacje internetowe Pracownia specjalistyczna, studia podyplomowe, rok 2011/2012 1. Stwórz formularz HTML pozwalający na rejestrację użytkownika w aplikacji internetowej.
Po zrealizowaniu materiału student będzie w stanie korzystać z usługi RSS oferowanej na stronach www utworzyć kanał RSS na stronie www
Po zrealizowaniu materiału student będzie w stanie korzystać z usługi RSS oferowanej na stronach www utworzyć kanał RSS na stronie www 2 1 Specyfikacja RSS http://www.rss-specifications.com/rss-specifications.htm
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego