Programowanie wielowarstwowe i komponentowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie wielowarstwowe i komponentowe"

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 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

Bardziej szczegółowo

Konwersja danych. Programowanie komponentowe 4. wg http://docs.oracle.com/javaee/6/tutorial/doc/ bnaph.html

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

Bardziej szczegółowo

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

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ą

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

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,

Bardziej szczegółowo

Zastosowanie słuchaczy zdarzeń wg

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

Bardziej szczegółowo

HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.

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

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

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

Bardziej szczegółowo

Złożone komponenty JSF wg

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

Bardziej szczegółowo

Wprowadzenie do języka HTML

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

Bardziej szczegółowo

JavaServer Faces (JSF)

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

Bardziej szczegółowo

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 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ń

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe JSP, JSF

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

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

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.

Bardziej szczegółowo

Złożone komponenty JSF wg

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

Bardziej szczegółowo

6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )

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.

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

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ą

Bardziej szczegółowo

Programowanie w Internecie

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

Bardziej szczegółowo

Test z przedmiotu. Witryny i aplikacje internetowe

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

Bardziej szczegółowo

Wykład 03 JavaScript. Michał Drabik

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

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

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

Bardziej szczegółowo

Projektowanie i wdrażanie systemów informatycznych. Dodanie aplikacji klienta uruchamianej przez przeglądarkę kontynuacja projektu:

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

Bardziej szczegółowo

Java Server Faces narzędzie do implementacji w wy prezentacji

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ń

Bardziej szczegółowo

Wykład 4: Klasy i Metody

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

Bardziej szczegółowo

JAVA SERVER FACES jest to nowy framework Javy do tworzenia interface u użytkownika dla aplikacji sieciowych.

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

Bardziej szczegółowo

akademia androida Składowanie danych część VI

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.

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

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

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

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

Bardziej szczegółowo

Dokument hipertekstowy

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

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Bardziej szczegółowo

Aplikacje WWW - laboratorium

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

Bardziej szczegółowo

Java Server Faces - wprowadzenie

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ą

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

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

Bardziej szczegółowo

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

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

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

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ą

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

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

Bardziej szczegółowo

Podstawowe informacje o technologii Java Persistence API - przykład

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

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

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

Bardziej szczegółowo

Zajęcia 10 obsługa formularzy w PHP

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 ),

Bardziej szczegółowo

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 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,

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

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,

Bardziej szczegółowo

termin. Podobna wada 2) jak w Sklep_6

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 +

Bardziej szczegółowo

termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

)<h:commandLink action="#{managed _produkt.dane_pro duktu}" value="ok" actionlistener="#{m anaged_produkt.

)<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:

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

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

Bardziej szczegółowo

Ćwiczenie 8. Kontrolki serwerowe

Ć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

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

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

Bardziej szczegółowo

Dostosowywanie wyglądu aplikacji czytelnika w oparciu o oprogramowanie dlibra 5.0

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

Bardziej szczegółowo

Visual Basic for Applications. Formatki tworzenie,

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,

Bardziej szczegółowo

termin Podobna wada 2) jak w Sklep_ , zal. 3.0 termin

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

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties

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

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

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

Bardziej szczegółowo

I. Wstawianie rysunków

I. Wstawianie rysunków I. Wstawianie rysunków Wstawiane rysunku Bez parametrów: Tekst alternatywny Tytuł obrazka

Bardziej szczegółowo

Programowanie komponentowe 5

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

Bardziej szczegółowo

Poznań Java User Group 2005. Java Server Faces. Wprowadzenie (Fakty i Mity)

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

Bardziej szczegółowo

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 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ń

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

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

Bardziej szczegółowo

FORMULARZE. G. Przęczek

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,

Bardziej szczegółowo

Klasy i obiekty cz II

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

Bardziej szczegółowo

media Blitz wydajne sytemy szablonów

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

Bardziej szczegółowo

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

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

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- 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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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

Bardziej szczegółowo

Dokumentacja Skryptu Mapy ver.1.1

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

Bardziej szczegółowo

PHP 5 język obiektowy

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

Bardziej szczegółowo

Ćwiczenie nr 12: Tworzenie stron internetowych z użyciem języka HTML Wstęp

Ć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.

Bardziej szczegółowo

Dokumentacja do API Javy.

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

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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,

Bardziej szczegółowo

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

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

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

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,

Bardziej szczegółowo

Kurs programowania 2 - listy

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

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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,

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

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

Bardziej szczegółowo

CSS. Kaskadowe Arkusze Stylów

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ć

Bardziej szczegółowo

Multimedia JAVA. Historia

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

Bardziej szczegółowo

Programowanie w Javie

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

Bardziej szczegółowo

Podstawowe znaczniki języka HTML.

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

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

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

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Wstęp. Język HTML jest uniwersalnym jezykiem wykorzystywanym przy

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

Bardziej szczegółowo

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

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.

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

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ć

Bardziej szczegółowo

Specyfikacja reklamy tekstowej i bannerowej na portalu GoldenLine.pl

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.

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

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

Bardziej szczegółowo

za pomocą: definiujemy:

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

Bardziej szczegółowo

Zajęcia 4 - Wprowadzenie do Javascript

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ą

Bardziej szczegółowo

Integracja frameworku Wicket z serwisem Platnosci.pl.

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

Bardziej szczegółowo

Aplikacje WWW - laboratorium

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

Bardziej szczegółowo

Programowanie obiektowe

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ąć

Bardziej szczegółowo

Aplikacje internetowe

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.

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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 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

Bardziej szczegółowo