Spring MVC - Validator


Objectifs

  • Comprendre le mécanisme utilisé par Spring MVC pour la validation d'un formulaire.
Validation

La validation ne fait pas partie du module Spring MVC mais elle est déléguée à l’infrastructure de validation fournie par Spring et ceci en implémentant l’interface org.springframework.validation.Validator.
Deux types de validaton sont possibles :
  • Programmatique validation : les règles de validation sont implémentées dans une classe java.
  • Déclaratif validation : les règles de validation sont déclarées dans un fichier de configuration.
Le schéma ci-dessous décrit le cycle de traitement d’une requête par Spring MVC. Ce qui nous intéresse, à ce niveau, est l’étape de validation du formulaire, mais ceci n’empêche pas de décrire tout le cycle à titre de rappel.

validationschema.jpg

Spring MVC - SimpleFormController


Objectifs

  • Comprendre le processus de traitement d’une requête par le contrôleur SimpleFormController.
  • Comprendre les méthodes utilisées par le contrôleur SimpleFormController.
Processus de traitement d’une requête

Nous décrivons ci-dessous le cycle de traitement d’une requête  par le  contrôleur SimpleFormContoller. Après le submit du formulaire le form bean envoyé vers le contrôleur passe par plusieurs méthodes pour être traité.

simpleformcontrollerprocess.jpg

Spring MVC Controllers

Objectifs: 

  • Déterminer les cas d’utilisation des contrôleurs implémentés par Spring MVC
  • Déterminer le fonctionnement des contrôleurs : AbstractController et AbstractCommandController
Spring MVC controllers

Un grand plus que marque Spring MVC par rapport aux autres framework telleque Struts ou WebWork, c’est qu’il offre une panoplies de contrôleurs dont chaque un est spécifique à un traitement bien particulier. Mais pour profiter de cet avantage il faut bien comprendre le fonctionnement de chaque contrôleur à fin de faire le bon choix.


Les contrôleurs de Spring MVC peuvent être classés en six catégories, nous décrivons dans le tableau ci-dessous en quel cas on peut choisir chaque type.

Les design pattern GoF - 2 éme partie


Dans cet article nous allons voir en détail l'objectif des designs pattern de GoF.

Les patterns de création

Les patterns de création ont pour vocation d’abstraire les mécanismes de création d’objets. Un système utilisant ces patterns devient indépendant de la façon dont les objets sont créés et, en particulier, des mécanismes d’instanciation des classes concrètes. Ces patterns encapsulent l’utilisation des classes concrètes et favorisent ainsi l’utilisation des interfaces dans les relations entre objets augmentant les capacités d’abstraction dans la conception globale du système.
Les 5 patterns de création sont
  • Factory Method
  • Abstract Factory
  • Builder
  •  Prototype
  • Singleton
Factory Method : a pour but d’introduire une méthode abstraite de création d’un objet en reportant aux sous-classes concrètes la création effective.
Utiliser ce pattern lorsque :
  • Une classe ne peut pas anticiper la classe des objets qu'elle doit créer.

Spring MVC - Hello World

Dans cet article nous allons créer notre première application, Hello World,  avec spring MVC.

Structure de l’application

La structure de notre première application est la suivante :

structure1.jpg

Dans WEB-INF créer le dossier lib et ajouter les libs suivantes :
  • \spring-framework-2.5.5\dist\ spring.jar
  • \spring-framework-2.5.5\dist\modules\ spring-webmvc.jar
  • \spring-framework-2.5.5\lib\jakarta-commons\ commons-logging.jar
  • \spring-framework-2.5.5\lib\j2ee\servlet-api.jar
  • \spring-framework-2.5.5\lib\j2ee\jstl.jar
Vous pouvez télécharger les lib de l’adresse : http://www.springframework.org/download

Spring MVC - Présentation

L'objectif de cet article est de présenter le principe de fonctionnement de spring MVC ainsi que les bases de ce framework.

Principe de fonctionnement

Spring MVC est un framwork qui permet d’implémenter des applications selon le design pattern MVC. Donc, comme tous autre MVC framework, Spring MVC se base sur le principe décrit par le schéma ci-dessous :

mvc schema

Passant maintenant aux détails : ci-dessous la cinématique de la gestion d’une requête par Spring MVC.

spring mvc

Les design pattern GoF - 1 ère partie


Définition

Un design pattern ou pattern de conception est une architecture de classes qui forme une solution à un problème fréquemment rencontré lors des phases d'analyse et de conception d’applications.

 Un pattern est donc une façon de faire, permettant d’utiliser des solutions connues et éprouvées dont la conception provient de l’expérience de programmeurs.

 Les design Patterns permettent de :        
  • Simplifier les phases d’analyse et de conception en réutilisant des solutions existantes.
  • Structurer l’application et rendre le code plus lisible et simple à maintenir.
  • Réduire la complexité de l’architecture des applications.
  • Etablir une terminologie commune en fournissant un point de référence commun au cours de la phase d'analyse et de conception d'un projet.
Mais attention, avant d’appliquer un design pattern il faut bien identifier le problème pour choisir le design pattern adéquat. Le plus important est  donc comprendre et savoir quel problème chacun des designs pattern permet de résoudre

Eclipse : les raccourcis clavier pour coder plus vite

A fin d’optimiser le temps de développement en utilisant l’IDE eclipse, je vous propose dans cet article une suite de raccourcis que je trouve les plus pratiques :

Complétion

Ctrl+espace : L'indispensable auto-complétion.

En tapant les premières lettres d’un nom de classe ou de méthode et par la suite « Ctrl + espace », Eclipse propose une liste des éléments commençant par le préfixe donné.

Il est possible d’utiliser la complétion dans les cas suivants :
  • Pour une classe, il est possible d’utiliser la complétion en tapant les « CamelCase » exemple tapez  « HM » pour HashMap. En utilisant la complétion pour une classe, Eclipse ajoute automatiquement la déclaration de l'import si ce dernier est absent.
  •   Pou les noms de variables. Exemple : après HashMap, Eclipse propose hashMap et map comme nom de variable.
  • Pour une méthode.
  • Pour utiliser un modèle (exemple le squelette d’une boucle while, il suffit de taper le prefixe et Ctrl+space. Il est possible d’ajouter ces propres modèles dans Preferences->Java->Editor-> Templates.
Correction rapide

Le raccourci Ctrl+1 affiche le 'QuickFix'. Eclipse affiche alors une liste d’actions possibles pour corriger l’erreur.