/ipi-jva320-tptd

Cours Java Web (Servlets, Spring MVC et Thymeleaf)

Primary LanguageJava

TD et TP IPI JVA320 - Application web Java (Servlet, Spring MVC, Thymeleaf)

TP finalisé au 01/01/2024

Ce dépôt GitHub reprend mon travail sur l'exercice proposé.

L'interface présente quelques améliorations, dont la possibilité de revenir à la liste en cours dans l'écran de détail salarié. Quelques commentaires ont été aussi ajouté en home page de l'application.

Cordialement, JC Kleinbourg

Ce projet est un début d'application web de gestion de salariés aide à domiciles. Il permet de réaliser les exercices en séance (TD) et exercices de l'évaluation (TP) du cours. L'énoncé de ces exercices est dans la page web accessible à http://localhost:8080/home.html une fois l'application démarrée ou sinon [src/main/resources/templates/home.html]. L'énoncé d'un exercice de TP est préfixé par "TP". Les exercices optionnels sont aussi préfixés par "BONUS".

Pré-requis

Créer la base de données

H2 (par défaut)

Par défaut, l'application se lance avec la base de données embarquée en mémoire H2. Comme il n'y a rien à faire pour cela, il est conseillé de commencer comme cela. L'inconvénient, outre que cela est moins réaliste, est que les données rajoutées disparaissent à chaque démarrage, à part quelques données de test rajoutées à l'initialisation (par

PostgreSQL (à créer)

Installer PostgreSQL : https://dbeaver.io/download/

Exécuter les lignes de commande plus bas,

Créer l'utilisateur "ipi" :

en tant qu'administrateur (sous Windows : recherche "cmd" dans les applications et dessus clic droit > "Run as admin", sous linux : sudo su - postgres) :

$> psql postgres
$postgresql> create user ipi with password 'ipi' createdb;
$postgresql> \q

Créer la base de données "ipi_jva320_web" :

$> psql -U ipi postgres -h localhost
$postgresql> create database ipi_jva320_web encoding 'UTF8';
$postgresql> \q

Vérifier que l'utilisateur créé peut bien se connecter à cette base :

$> psql -U ipi ipi_jva320_web -h localhost

Configurer l'application pour s'en servir :

  • dans main/resources/application.properties, décommenter les lignes sous "postgresql - clean setup" et commenter les lignes à propos de H2.
  • dans pom.xml, commenter la dépendance à H2 (ou la passer en <scope>test</scope>).

Exécution

lancer la classe com.ipi.jva320.Jva320Application

  • dans l'IDE
    • IntelliJ : l'ouvrir et cliquer sur la flèche verte sur sa gauche
    • Eclipse : clic droit > Run as application),
  • avec maven (IDE ou ligne de commande) : mvn spring-boot:run

Puis pointer le navigateur web à http://localhost:8080/ , ou pour afficher une page sans rendu Thymeleaf par exemple http://localhost:8080/home.html (qui contient l'énoncé des exercices à réaliser).

FAQ :

  • erreur au démarrage "Cannot find template location: classpath:/templates/" => dans IntelliJ : clic droit sur projet > Add as Maven project

Développement

Voici l'organisation du code source de l'application :

  • code Java de l'application : dans le package com.ipi.jva320
  • Controllers Spring MVC (à développer) : dans le sous-package web
  • template Thymeleaf (à compléter) : dans main/resources/templates
  • configuration : main/resources/application.properties