******************************************* SpringBootThymeleafDemo ******************************************* // mvn package // java -jar target/SpringBootThymeleaf-1.0-SNAPSHOT.jarar // start http://localhost:8080/mvc-th ------------------------------------------ SpringBootThymeleafDemoApplication.java ------------------------------------------ package de.drapatz.springbootthymeleafdemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootThymeleafDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringBootThymeleafDemoApplication.class, args); } } ------------------------------------------ MeineEntityController.java ------------------------------------------ package de.drapatz.springbootthymeleafdemo; import java.util.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; // mvn package // java -jar target/SpringBootThymeleaf-1.0-SNAPSHOT.jar // start http://localhost:8080/mvc-th @Controller @RequestMapping( "/mvc-th" ) public class MeineEntityController { @Autowired private MeineEntityRepository repo; // POST // Mit der POST-Methode können Sie große Datenmengen (wie Bilder oder HTML-Formular-Daten) // zur weiteren Verarbeitung zum Server senden. @RequestMapping( method=RequestMethod.POST ) public String addToListe( MeineEntity newEntity ) { newEntity.setDatum( new Date() ); repo.save( newEntity ); return "redirect:/mvc-th"; // Seite nochmal laden } // GET // Mit der GET-Methode können Sie eine Ressource (zum Beispiel eine Datei) vom Server anfordern. // Dabei wird ein Parameter (z.B. übertragene Formulardaten), getrennt durch ein Fragezeichen, zum URI hinzugefügt. // Beispiel: GET /index.php?suche=anfragemethoden+formular @RequestMapping( method=RequestMethod.GET ) public String getListe( Model model ) { model.addAttribute( "entitiesListe", repo.findAll() ); // Parameter für die Webseite return "MeineEntityWebseite"; // HTML-Seite : Benötigt "" } } ------------------------------------------ MeineEntity.java ------------------------------------------ package de.drapatz.springbootthymeleafdemo; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class MeineEntity { @Id @GeneratedValue private Long id; private Date datum; private String text; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getDatum() { return datum; } public void setDatum(Date datum) { this.datum = datum; } public String getText() { return text; } public void setText(String text) { this.text = text; } @Override public String toString() { return "[id=" + id + ", datum=" + datum + ", text=" + text + "]"; } } ------------------------------------------ MeineEntityRepository.java ------------------------------------------ package de.drapatz.springbootthymeleafdemo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; // Anders als in der oben verwendeten MeineEntityRepository.java wird diesmal nicht CrudRepository erweitert, // sondern stattdessen JpaRepository, damit findAll() nicht einen Iterable, sondern eine List returniert. @Repository public interface MeineEntityRepository extends JpaRepository { public MeineEntity findByText( String text ); } ------------------------------------------ resources / style.css ------------------------------------------ body { font-family: arial,helvetica,sans-serif; } table, th, td { border: 1px solid black; border-collapse: collapse; padding: 5px; text-align: left; } th { background-color: #eeeeee } ------------------------------------------ resources / templates / MeineEntityWebSeite.html ------------------------------------------ Spring-Boot-MVC-Thymeleaf-Webanwendung

Spring-Boot-MVC-Thymeleaf-Webanwendung


Erstelle neues Datenelement


Gespeicherte Datenelemente

Keine Datenelemente vorhanden.

Id Datum Text
Id Datum Text

------------------------------------------ application.properties ------------------------------------------ spring.datasource.url = jdbc:h2:./target/h2-db;DB_CLOSE_ON_EXIT=FALSE spring.datasource.username = sa spring.datasource.password = spring.jpa.hibernate.ddl-auto = update ------------------------------------------ pom.xml ------------------------------------------ 4.0.0 de.drapatz.springbootthymeleafdemo SpringBootThymeleafDemo 0.0.1-SNAPSHOT jar SpringBootThymeleafDemo Spring Boot and Thymeleaf org.springframework.boot spring-boot-starter-parent 1.5.17.BUILD-SNAPSHOT UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false *********************************** Thymeleaf *********************************** HTML:

Keine Datenelemente vorhanden.

Id Datum Text
Id Datum Text
Server: @RequestMapping( method=RequestMethod.GET ) public String getListe( Model model ) { model.addAttribute( "entitiesListe", repo.findAll() ); // Parameter für die Webseite return "MeineEntityWebseite"; // HTML-Seite : Benötigt "" }