Validations et restaurations de base de données pour les commandes de contrôleur

Tout au long de l'exécution d'une commande de contrôleur, des données sont souvent créées ou mises à jour. Dans de nombreux cas, la base de données doit être mise à jour avec les nouvelles informations à la fin de la transaction.

Le contrôleur de solution marque le début de la transaction avant d'appeler la façade de logique commerciale. Lorsque l'exécution de la commande de contrôleur est terminée, la commande de contrôleur renvoie un nom de vue au contrôleur. Le contrôleur est responsable du marquage de la fin de la transaction. Le moment réel auquel la transaction se termine (avant ou après l'appel de la vue) dépend du type de vue utilisée.

Pour les applications Web, le contrôleur de solution détermine le type de vue en recherchant le nom de la vue dans les fichiers de configuration Struts :

  • Si l'instruction de visualisation à utiliser est une instruction de visualisation avant ou directe, l'instruction de visualisation s'exécute dans le contexte de la transaction en cours. Dans ce cas, la validation ou la restauration de la base de données ne se produit pas tant que la l'instruction de visualisation n'est pas terminée.
  • Si la réponse est une redirection, l'instruction de visualisation fonctionne en dehors de l'étendue de la transaction en cours et la validation ou la restauration de la base de données se produit avant que l'instruction de visualisation ne soit appelée.

Dans les cas où l'instruction de visualisation s'exécute dans la même étendue de transaction que la commande de contrôleur, une erreur d'exécution de l'instruction de visualisation provoque une restauration de l'ensemble de la transaction. Cela peut ou non être le résultat souhaité, selon votre logique commerciale.