Notions abordées :
Créer le projet td2 :
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 :
Créer les repositories correspondant à chacune des classes dans s4.spring.td2.repositories.
Recherche une organisation en fonction de la valeur contenue de l'un de ses champs visibles, puis redirige vers /orgas/