Uploaded by Ion Ionel

Proiect Spring

advertisement
Creaţi o aplicaţie folosind Spring Boot unde un utilizator ȋşi poate rezerva un zbor către o destinaţie
aleasă.
Descărcaţi arhiva resources şi inlocuiţi folderele src/main/resources/template şi
src/main/resources/static din proiectul vostru.
Dacă utilizatorul are deja cont acesta se va putea loga ȋn aplicaţie.
În cazul ȋn care utilizatorul nu are cont acesta va trebui să acceseze pagina de register şi să ȋşi creeze un
cont. După crearea contului el va fi redirecţionat către pagina de logare.
Username-ul utilizatorului trebuie să fie o adresă de mail unică ȋn baza de date.
Odată logat utilizatorul este redirecţionat către pagina de home unde ȋşi va alege destinaţia, data de
plecare, data de sosire şi numărul de adulţi/ copii.
Când a dat click pe butonul de “Check availability” va apărea lista cu zborurile din baza de date care
corespund selecţiei.
Utilizatorul va bifa zborurile dorite, iar butonul “Get Flights” va prelua aceste zboruri şi va creea o
rezervare a lor pentru userul curent. Puteţi modifica afişare zborurilor ca să cuprindă mai multe detalii
ale zborului.
Sugestii de implementare:
Acestea sunt doar nişte sugestii, poţi face aplicaţia aşa cum doreşti. Fişierele html ataşate sunt
modificate astfel ȋncât să poată fi construită aplicaţia folosind aceste sugestii, dar , bineȋnţeles , orice
poate fi schimbat.
Se va aplica metoda de construire a proiectului ȋnvăţată anterior la creearea aplicatiei Cinema (modelul
MVC).
Vom avea următoarele clase:
User -> pentru utilizatorii aplicaţiei unde se vor regăsi ca şi atribute id, username-ul şi parola
(pentru parolă poţi face ca aceasta să fie salvată encriptată ȋn baza de date)
Flights -> zborurile vor avea ca atribute:id, city, departure date, arrival date, airline;
Reservation -> atributele vor fi idUser, idZbor, numberOfChildrens, numberOfAdults;
În cotroleri poţi crea următoarele atribute pentru a le folosi ȋn metodele hadler.
private List<Flight> flightList;
private User currentUser;
private int noChildren;
private int noAdults;
Taguri folosite :
th:text=”${attributename}” -> tag folosit pentru a afişa valoarea unui atribut al modelului
th:each=”value : ${listName}” -> folosim acest tag pentru a itera o listă
th:href=”@{/value}” -> creeaza un link
th:name=”valueName” -> folosită pentru a trimite o valoare a unui field de input din html către controler
th:action=”@/value” -> folosită petru a define url-ul formularului
Model- interfaţă folosită pe post de container pentru atributele pe care vrem să le trimitem către pagina
html
RedirectAttributes -> un tip specializat al interfeţei Model pe controller, ȋl pot folosi pentru a selecta
atribute pentru redirecţionare.
@ModelAttribute -> utilizată pentru legarea datelor
De exemplu pentru metoda care se va ocupa de requestul pentru logarea userului va avea ca parametrii
uname şi psw pe care ȋi primeşte din formularul de ȋnregistrare.
@GetMapping("/login")
public String logIn(@RequestParam(value = "uname", required = false) String
uname,
@RequestParam(value = "psw", required = false)
String psw, RedirectAttributes redirectAttributes){
redirectAttributes.addAttribute("user", uname);
……………………………………………………………………………………………………………………………………………………………………………………………………..
<div>
<label ><b>Username</b></label>
<input th:name="uname" type="text" class ="form-group" placeholder="Enter
Username" name="uname" required>
</div>
<div>
<label ><b>Password</b></label>
<input th:name="psw" type="password" class ="form-group"
placeholder="Enter Password" name="psw" required>
</div>
Putem folosi şi RedirectAttributes dacă vrem să redirecţionăm un atribut către altă metoda hadler. În
exemplul de mai sus usernameul va fi trimis ca atribut al modelului când redirecţionăm pagina.
Petru a redirecţiona vom folosi return “redirect: pageName”;
Articole utile:
https://www.baeldung.com/thymeleaf-in-spring-mvc
https://www.baeldung.com/spring-mvc-and-the-modelattribute-annotation
https://www.baeldung.com/spring-new-requestmapping-shortcuts
Download