Struts permet de gérer les exceptions de manière déclarative. Dans vos classes Action, si une exception est levée, elle sera propagée jusqu' à la super classe Action, qui ira chercher si une exception est déclarée pour le mapping de la dite Action. Si ce n'est pas le cas, elle ira ensuite chercher si une exception est déclarée en tant qu'exception globale dans le fichier struts-config.xml.
La gestion déclarative des exceptions crée aussi un message de type ActionError (ou directement ActionMessage selon la version de Struts) à partir de la clé de ResourceBundle indiquée. Ce message est alors utilisé par la page jsp spécifiée pour l'affichage d'un message d'erreur.
Le plus grand avantage de ce type de déclaration, outre le fait de centraliser les exceptions, est sans doute de permettre de ne pas polluer le code source des classes Actions avec des blocs try/catch redondant dans plusieurs classes.
Pour déclarer une exception , il suffit de créer un noeud de type <exception> au fichier struts-config.xml :
<exception
key="error.message.key"
path="/page.jsp"
scope="request"
type="java.handled.exception.type" />
|