Commit 0986a1e8 by Patryk Czarnik

przykłady beanów

parent 29a4687d
package beans;
import java.time.LocalTime;
public class InfoBean {
/* Klasa jest "Java Bean" jeśli:
* 1) posiada publiczny konstruktor bezargumentowy (tzw. "default constructor")
* 2) dostęp do własności ("properties") udostępniony poprzez gettery i settery (nie ma obowiązku aby zawsze była para)
* ... wzorzec Java Bean opisuje też technikę powiadamiania o zdarzeniach (korzysta się z tego przede wszystkim w GUI), ale w większości przypadków wystarczają te dwie powyższe cechy
*/
// konstruktor domyślny jest tworzony automatycznie
private String napis = "Początkowy napis";
private int licznik = 0;
public String getNapis() {
return napis;
}
public void setNapis(String napis) {
this.napis = napis;
}
public int getLicznik() {
return ++licznik;
}
public void setLicznik(int licznik) {
this.licznik = licznik;
}
public LocalTime getCurrentTime() {
return LocalTime.now();
}
// eksperyment: jeśli są dwie metody, to wybiera mała literę
// public String getcurrentTime() {
// return "mała litera";
// }
}
package beans;
public class Osoba {
private String imie, nazwisko;
private int wiek;
// istnieje automatycznie generowany konstruktor domyślny, nie zmieniamy tego
public String getImie() {
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
this.nazwisko = nazwisko;
}
public int getWiek() {
return wiek;
}
public void setWiek(int wiek) {
this.wiek = wiek;
}
// Metoda wygląda jak getter, ale nie odczytuje jednej zmiennej, tylko coś "wylicza"
public String getOpis() {
return "Osoba o imieniu " + imie + " i nazwisku " + nazwisko + " ma " + wiek + " lat.";
}
@Override
public String toString() {
return "Osoba " + imie + " " + nazwisko + " (" + wiek + " lat)";
}
}
......@@ -58,5 +58,31 @@ oraz biblioteki tagów (taglibs) w połaczeniu z dostępem do obiektów "bean" p
</c:forEach>
</ol>
<h2>Odwołania do beanów</h2>
<jsp:useBean id="ala" class="beans.Osoba"/>
<p>ala: ${ala}</p>
<%-- setProperty wywołuje na obiekcie odp. setter --%>
<jsp:setProperty name="ala" property="imie" value="Ala"/>
<jsp:setProperty name="ala" property="nazwisko" value="Kowalska"/>
<jsp:setProperty name="ala" property="wiek" value="30"/>
<p>ala: ${ala}</p>
<%-- Pisząc obiekt.własność tak naprawdę wywołujemy obiekt.getWłasność() --%>
<p>pola obiektu ala: ${ala.imie}, ${ala.nazwisko}, opis: ${ala.opis}</p>
<jsp:useBean id="obiekt" class="beans.InfoBean"/>
<p>Mam beana: ${obiekt}</p>
<p>Tekst: ${obiekt.tekst}</p>
<%-- Tak naprawdę wywoływane jest obiekt.getTekst() --%>
<%-- A teraz obiekt.setTekst("Ola ma psa nr 5") --%>
<jsp:setProperty name="obiekt" property="tekst" value="Ola ma psa nr ${2+3}"/>
<p>Tekst po zmianie: ${obiekt.tekst}</p>
<p>upper: ${obiekt.tekstDuze}</p>
<p>czas: ${obiekt.currentTime}</p>
<p>pola daty i czasu: ${obiekt.currentTime.hour}:${obiekt.currentTime.minute} , dzień roku: ${obiekt.currentTime.dayOfYear}</p>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment