╔═══════════════════════════════════════════════════════════════════════════╗
║                                                                           ║
║   🚀 SPRING BOOT BASIC - TAG 3: THYMELEAF & MVC VIEWS                    ║
║                                                                           ║
║   Von JSON zu HTML - Menschen-freundliche Webseiten!                     ║
║   Java Fleet Systems - Elyndra Valen                                     ║
║                                                                           ║
╚═══════════════════════════════════════════════════════════════════════════╝


📦 INHALT DES PROJEKTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ Vollständiges Maven-Projekt
✅ Spring Boot 3.3.5 + Thymeleaf
✅ 3 Controller (Hello, REST API, HTML Views)
✅ PersonService mit 100 Test-Personen
✅ 2 Thymeleaf Templates (Liste + Details)
✅ Professionelles CSS mit Gradient-Design
✅ Pagination, Suche & Sortierung
✅ Umfangreiches README mit Erklärungen


⚡ SCHNELLSTART (3 SCHRITTE)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1️⃣  ZIP ENTPACKEN
   ────────────────
   Entpacke SpringBootBasic-Tag3.zip in einen beliebigen Ordner


2️⃣  IN IDE ÖFFNEN
   ────────────────
   NetBeans:  File → Open Project → SpringBootBasic-Tag3
   IntelliJ:  File → Open → SpringBootBasic-Tag3
   Eclipse:   File → Import → Maven → Existing Maven Projects
   VS Code:   Ordner öffnen → SpringBootBasic-Tag3


3️⃣  PROJEKT STARTEN
   ────────────────
   In der IDE:
      → Rechtsklick auf Projekt → Run
      → Oder: SpringBootBasicTag3Application.java ausführen
   
   Im Terminal:
      cd SpringBootBasic-Tag3
      mvn spring-boot:run


🌐 IM BROWSER ÖFFNEN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

HTML Views (für Menschen):
   🏠 http://localhost:8080/                → Startseite
   📋 http://localhost:8080/persons         → Personen-Liste (Tabelle)
   👤 http://localhost:8080/persons/1       → Person-Details
   🔍 http://localhost:8080/persons?search=Anna → Suche
   
REST API (für Programme):
   📡 http://localhost:8080/api/persons     → Alle Personen (JSON)
   📡 http://localhost:8080/api/persons/1   → Person mit ID 1 (JSON)

Test:
   👋 http://localhost:8080/hello           → Einfacher Test


🎯 WAS DU LERNST
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ Unterschied @RestController vs @Controller
✅ Thymeleaf Template Engine nutzen
✅ Model & View Konzept (MVC-Pattern)
✅ HTML-Templates mit dynamischen Daten
✅ Thymeleaf Expressions (${...}, @{...})
✅ Schleifen mit th:each
✅ Links mit th:href
✅ Pagination, Suche & Sortierung


📁 PROJEKT-STRUKTUR
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

SpringBootBasic-Tag3/
├── pom.xml                           ← Maven Configuration
├── README.md                         ← Ausführliche Dokumentation
├── SCHNELLSTART.txt                  ← Diese Datei
└── src/main/
    ├── java/com/javafleet/springboot/tag3/
    │   ├── SpringBootBasicTag3Application.java    ← Main Class
    │   ├── controller/
    │   │   ├── HelloController.java               ← Test (Tag 1)
    │   │   ├── PersonController.java              ← REST API (Tag 2)
    │   │   └── PersonViewController.java          ← HTML Views ⭐
    │   ├── service/
    │   │   └── PersonService.java                 ← Business Logic
    │   └── model/
    │       └── Person.java                        ← Data Model
    └── resources/
        ├── application.properties                 ← Configuration
        ├── templates/                             ← Thymeleaf Templates
        │   ├── persons-list.html                  ← Personen-Liste ⭐
        │   └── person-details.html                ← Person-Details ⭐
        └── static/css/
            └── style.css                          ← Professionelles CSS ⭐


🔑 WICHTIGE KONZEPTE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

@RestController vs @Controller:
   
   @RestController                      @Controller
   ───────────────                      ───────────
   → Gibt JSON zurück                   → Gibt View-Namen zurück
   → Für APIs                           → Für Webseiten
   → Response = Daten                   → Response = HTML


Model & View:

   Browser → Controller → Service → Model → Thymeleaf → HTML → Browser


Thymeleaf Expressions:

   ${...}     → Variable anzeigen
   @{...}     → URL erstellen
   th:text    → Text setzen
   th:each    → Schleife
   th:href    → Link erstellen


🎨 FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ 100 Test-Personen vorinstalliert
✅ Personen-Liste als HTML-Tabelle
✅ Person-Details-Seite
✅ Pagination (10 Personen pro Seite)
✅ Suche nach Vor-/Nachnamen
✅ Sortierung nach allen Spalten (aufsteigend/absteigend)
✅ Professionelles CSS mit Gradient-Design
✅ Responsive Layout (Mobile-freundlich)
✅ REST API bleibt parallel verfügbar!


🔧 TECHNOLOGIE-STACK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• Spring Boot 3.3.5    ← Framework
• Spring Web           ← REST & MVC
• Thymeleaf           ← Template Engine
• Lombok              ← Weniger Boilerplate
• DevTools            ← Hot Reload
• Maven               ← Build Tool
• Java 21             ← Programmiersprache


🐛 TROUBLESHOOTING
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Problem: Port 8080 bereits belegt
   → Anderes Programm beenden oder Port ändern in application.properties

Problem: Template nicht gefunden
   → Projekt neu starten (Clean & Build)
   → Templates müssen in src/main/resources/templates/ liegen

Problem: CSS wird nicht geladen
   → Browser-Cache leeren (Strg+F5)
   → CSS muss in src/main/resources/static/css/ liegen

Problem: Maven nicht gefunden
   → Maven installieren: https://maven.apache.org/download.cgi
   → Oder: IDE verwendet eigenes Maven (sollte automatisch funktionieren)


📚 WEITERLESEN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

→ Öffne README.md für ausführliche Dokumentation!

   Dort findest du:
   • Detaillierte Code-Erklärungen
   • Best Practices & Don'ts
   • Vergleich Tag 1 → Tag 2 → Tag 3
   • Ausblick auf Tag 4


📧 SUPPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Fragen? Probleme? Feedback?

Java Fleet Systems - Elyndra Valen
📧 elyndra@java-developer.online
🌐 https://java-developer.online


╔═══════════════════════════════════════════════════════════════════════════╗
║                                                                           ║
║   🎉 VIEL ERFOLG MIT SPRING BOOT & THYMELEAF!                            ║
║                                                                           ║
║   Keep coding, keep learning! 💙                                         ║
║                                                                           ║
╚═══════════════════════════════════════════════════════════════════════════╝
