framework-web:spring:td2

TD n°2

Notions abordées :

  • Models/Entities
  • JPA + Hibernate
  • H2
  • Persistance

Créer le projet td2 :

  • Group : s4.spring
  • Artifact : td2
  • Packaging : War
  • Description : Gestion de messagerie
  • Dependencies : Web, Devtools, Mustache, H2, JPA

Configurer le projet dans application.properties, pour que le contextPath soit /, configurer Mustache, H2

spring.datasource.url=jdbc:h2:file:./data/messagerie;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
 
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

server.servlet.context-path=/

# Mustache Template engine
spring.mustache.prefix=classpath:/templates/
spring.mustache.suffix=.html

Ajouter webJars à pom.xml pour intégrer Semantic-UI :

<!-- https://mvnrepository.com/artifact/org.webjars/Semantic-UI -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>Semantic-UI</artifactId>
    <version>2.4.1</version>
</dependency>

Ajouter la dépendance pour jQuery (indispensable avec Semantic)

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1-1</version>
</dependency>	

Créer une classe de configuration de l'application pour définir des mappings vers les webJars :

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
 
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/webjars/**")
          .addResourceLocations("/webjars/");
    }
}

Créer les templates :

<!doctype html>
<html lang="fr">
<head>
	<meta charset="UTF-8">
	<title>Messagerie</title>
	<link rel="stylesheet"
          href="/webjars/Semantic-UI/2.4.1/semantic.min.css" />
</head>
<body>
<div class="ui container">

</div>
<script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>
<script src="/webjars/Semantic-UI/2.4.1/semantic.min.js"></script>
</body>
</html>

Créer les classes métier correspondant au diagramme de classes suivant dans s4.spring.td2.entities :

  • penser à ajouter les relations :
    • oneToMany
    • manyToOne
    • manyToMany

Créer les repositories correspondant à chacune des classes dans s4.spring.td2.repositories.

Confirmation avant la suppression d'une organisation :

Recherche une organisation en fonction de la valeur contenue de l'un de ses champs visibles, puis redirige vers /orgas/

  • framework-web/spring/td2.txt
  • Dernière modification : il y a 5 ans
  • de 127.0.0.1