Bonjour à tous, ou plutôt bonsoir.
Je suis en train de me former à Spring Webapp et je tombe sur un os.
J'ai cherché sur les tutos Spring mais rien n'est mentionné par rapport à mon souci.
Lorsqu'un client crée un compte je lui envoie un mail qui contient un lien pour activer son compte. Jusque là rien de bien sorcier...
Ce lien est de la forme : http://monappli.com/mon-compte/activ...#39;activation
Par exemple : http://monappli.com/mon-compte/activ...fab1a3d1a3d514

Dans mon Controller, voici ce que j'ai comme méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
@RequestMapping(value = "/mon-compte/activation/{email}/{key}", method = RequestMethod.GET)
public ModelAndView activateAccount(@PathVariable("email") String email, @PathVariable("key") String key, Errors errors) throws Exception 
{
    // Searches user by his email
    User user = userMgr.getByEmail(email);
    if (user == null || !StringUtils.equalsIgnoreCase(user.getActivationKey(), key)) errors.reject("account.activation.user.unknown");
 
    // Errors found, we redirect to login
    if (errors.hasErrors()) return new ModelAndView("loginForm"); 
 
    // No error, account activation
    user = userMgr.activateAccount(user);
    return new ModelAndView("loginForm").addObject(Constants.SUCCESS_MESSAGE, "Votre compte a été activé avec succès.");
}
Rien de bien méchant non plus, j'attend que dans l'URL me soient passés l'email du client et une clé d'activation, je cherche l'utilisateur grâce à son adresse mail et je vérifie la clé fournie. Si tout est OK, je considère le compte comme activé.

Le souci, c'est que Spring n'accepte pas que j'utilise le parramètre "Errors errors" sans Model Attribute juste avant.

Voici le message d'erreur que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!
Ma question est la suivante : comment faire pour utiliser le mécanisme des erreurs (je voudrais pouvoir renvoyer un message d'erreur général, càd pas propre à un formulaire) pour remonter l'erreur jusqu'à la page web ?