Commit b5f1cbef by Patryk Czarnik

show_time6

parent 24c20f31
......@@ -49,6 +49,15 @@ public class DateTimeController {
dt.toLocalTime(), dt.toLocalDate(), dt.format(FORMAT_DATY));
}
// 2. Tworzymy odpowiedź za pomocą "szablonu" z wykorzystaniem dodatkowej technologii,
// tutaj jest to Thymeleaf, ale może być coś innego: JSP, Velocity, FreeMarker, Mustache, ...
// Gdy metoda w kontrolerze w wyniku zwraca String, a nie posiada adnotacji @ResponseBody,
// to Spring traktuje zwracaną wartość jak nazwę szablonu,
// w odp. miejscu szuka pliku z szablonem i generuje wynik za pomocą tego szablonu.
// Gdy do szablonu chcemy przekazać jakieś dane, to dodajemy je jako atrybuty do modelu.
// Najprościej zrobić to poprzez parametr model.
@RequestMapping("/time5")
public String time5(Model model) {
LocalDateTime dt = LocalDateTime.now();
......@@ -57,4 +66,11 @@ public class DateTimeController {
return "show_time5.html";
}
@RequestMapping("/time6")
public String time6(Model model) {
LocalDateTime dt = LocalDateTime.now();
model.addAttribute("dt", dt);
return "show_time6.html";
}
}
body {
background-color: #FFFFCC;
font-family: 'Arial', sans-serif;
}
h1 {
color: green;
text-align: center;
}
form {
margin: 30px auto;
padding: 20px;
width: 800px;
border: 4px solid blue;
background-color: #AAEEFF;
}
.wynik {
background-color: #FFFFFF;
border: 3px solid green;
margin: 20px auto;
width: 800px;
padding: 10px;
color: green;
}
.error {
background-color: #FFFFFF;
border: 6px double red;
margin: 20px auto;
padding: 10px;
width: 800px;
color: red;
font-weight: bold;
}
<!DOCTYPE html>
<html lang="pl" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Show Time 6</title>
<link rel="stylesheet" type="text/css" th:href="@{/styl.css}" href="../static/styl.css">
</head>
<body>
<h1>Data i czas</h1>
<h3>Trzy sposoby wstawiania wartości atrybutu w Thymeleaf</h3>
<ul>
<!-- th:text oraz data-th-text to są przykłady podejścia "natural template",
czyli że plik jest poprawnym składniowo dokumentem HTML, a dodatkowe magiczne atrybuty powodują specjalne działanie"
gdy ten plik jest przetwarzany przez "silnik thymeleaf".
-->
<!-- Najbardziej zalecane podejście: dodatkowa przestrzeń nazw th
Aby to zadziałało, w HTMLu (najczęściej na samym początku) musi byś zadeklarowana przestrzeń nazw.
"Tekst, który znajduje się wewnątrz znacznika, zastąp wartością zmiennej dt"
-->
<li th:text="${dt}">jakaś godzina 1</li>
<!-- atrybuty "data" wprowadzone w HTML 5
Normalnie takich atrybutów używają skrypty JS, aby w dokumencie zapamiętywać dane,
a tutaj Thymeleaf używa w innym celu.
-->
<li data-th-text="${dt}">jakaś godzina 2</li>
<!-- zagnieżdżone wyrażenia / inline expressions - podejście podobne do JSP, tutaj mniej zalecane -->
<li>to jest wynik: [[${dt}]]</li>
</ul>
<h3>Odwołania do elementów zagnieżdżonych</h3>
<ul>
<!-- tak naprawdę wywołanie dt.getYear() -->
<li>rok: <strong th:text="${dt.year}">1997</strong></li>
<li>dzień roku: <strong th:text="${dt.dayOfYear}">100</strong></li>
<li>dzień tygodnia: <strong th:text="${dt.dayOfWeek}">MONDAY</strong></li>
<li>sekunda: <strong th:text="${dt.second}">33</strong></li>
<!-- Można też wywołać metodę, która coś odczyta, nawet jeśli nie nazywa się getXXX() -->
<li>data: <strong th:text="${dt.toLocalDate()}">2020-04-05</strong></li>
<li>czas: <strong th:text="${dt.toLocalTime()}">10:44:22</strong></li>
</ul>
</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