IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

Gestion des erreurs avec l'annotation @PathVariable


Sujet :

Spring Web Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut Gestion des erreurs avec l'annotation @PathVariable
    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 ?

  2. #2
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut
    Bonsoir à tous, je vois que mon sujet de discussion n'intéresse personne
    Personne n'a jamais rencontré le même problème que moi ?

    Merci d'avance pour votre aide.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 99
    Par défaut
    Si moi, et j'ai le même problème : affiche un pauvre message d'erreur global sur une JSP.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Par défaut
    Eh bien ! après tout ce temps !
    Finalement en ce qui me concerne j'ai décidé de ne pas utiliser de Errors qui semblent incompatibles avec les PathVariables, et je fais une validation manuelle qui lève une exception.
    J'utilise ensuite la gestion des exceptions Spring pour rediriger vers la page adéquate. C'est un peu fastidieux mais ça a le mérite de compiler.

    Qu'as-tu comme erreur ?

Discussions similaires

  1. Gestion des erreur avec aspSmartUpload
    Par zooffy dans le forum ASP
    Réponses: 2
    Dernier message: 07/12/2007, 09h39
  2. gestion des erreurs avec fichier .properties
    Par _momo dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/08/2007, 14h05
  3. [J2EE/JSP] Gestion des erreurs avec une base SQL server 2005
    Par critok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/04/2006, 16h57
  4. Gestion des erreurs avec setjump/longjump
    Par gege2061 dans le forum C
    Réponses: 1
    Dernier message: 05/02/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo