Commit bf5e6d85 by Patryk Czarnik

JSP2 - beany

parent 76b065d1
package serwlety.beans;
import java.time.LocalDate;
import java.time.Period;
public class Osoba {
private String imie, nazwisko;
private LocalDate dataUrodzenia;
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 LocalDate getDataUrodzenia() {
return dataUrodzenia;
}
// Aby w JSP zadziałało setProperty, parametrem gettera jest String
public void setDataUrodzeniaTxt(String dataUrodzenia) {
this.dataUrodzenia = LocalDate.parse(dataUrodzenia);
}
// Jeśli obiekt posiada metodę, która wygląda jak getter,
// to z punktu widzenia standardu "Java Beans" jest to "readonly property",
// a w skryptach JSP będzie można pisać ${osoba.wiek} , co spowoduje wywołanie tego gettera.
public int getWiek() {
Period czasZycia = Period.between(dataUrodzenia, LocalDate.now());
return czasZycia.getYears();
}
@Override
public String toString() {
return "Osoba{" +
"imie='" + imie + '\'' +
", nazwisko='" + nazwisko + '\'' +
", dataUrodzenia=" + dataUrodzenia +
'}';
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Przyklad 2 JSP</title>
</head>
<body>
<h1>JSP 2</h1>
<%-- Expression Language (EL) - wzorowany na wyrażeniach Javy, ale uproszczony, z delikatnymi równicami.
Wyrażenia umieszcza się w znacznikach ${WYRAŻENIE}
Wynik wyrażenia jest wypisywany na stronie.
EL są też użwane w ramach "tagów" - za chwilę... --%>
<p>Wynik obliczenia: ${2 + 3 * 4}</p>
<%-- Najważniejszym zastosowaniem EL jest dostęp do obiektów tworzonych przez aplikację.
Można zrobić tak, że to sam skrypt JSP tworzy obiekt, a następnie z niego korzysta;
są też inne możliwości, m.in. sesja, co zobaczymy później. --%>
<jsp:useBean id="osoba" class="serwlety.beans.Osoba"/>
<p>Obiekt osoba: ${osoba}</p>
<jsp:setProperty name="osoba" property="imie" value="Ala"/>
<jsp:setProperty name="osoba" property="nazwisko" value="Kowalska"/>
<jsp:setProperty name="osoba" property="dataUrodzeniaTxt" value="2000-03-04"/>
<p>Obiekt osoba: ${osoba}</p>
<p>Pola obiektu:</p>
<ul>
<li>${osoba.imie} ${osoba.nazwisko}</li>
<li>${osoba.wiek}</li>
<li>${osoba.dataUrodzenia}</li>
<li>Rok urodzenia: ${osoba.dataUrodzenia.year}</li>
<li>Który to był dzień roku? ${osoba.dataUrodzenia.dayOfYear}</li>
<li>Metoda zwracająca długość miesiąca: ${osoba.dataUrodzenia.lengthOfMonth()}</li>
</ul>
<%-- Gdy wpisujemy odwołanie do obiektu, to jest on printowany za pomocą toString().
Gdy wpiszemy coś, co wygląda na odczyt pola obiektu, to jest wywoływany getter zwracający to property,
np. osoba.wiek powoduje wywołanie getWiek()
Gdy wpiszemy coś z nawiasami na końcu, to jest to wywołanie metody,
--%>
</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