Bonjour,
Je vous explique mon besoin assez rapidement.
J'ai une application qui se base sur spring MVC et Hibernate.
La couche DAO et récupération de donnée est codé et fonctionnel.
Mais c'est la couche controler / vue qui me pose probleme
Voici l'existant de l'application.
J'ai un controller qui implements Controller ou l'on recupere dans le handlerequest la liste des mes objets que je retourne dans un ModelAndView.
De plus j'ai la jsp qui affiche les objets et leurs informations. Enfin j'ai crée un lien sur le nom de mon objet qui doit me permettre d'éditer les paramètres de cet objet via un formulaire. C'est dans ce lien que je passe l'id de mon objet a modifier
Il faut donc que:
- je récupère les infos de cet objet spécifique
- j'affiche un formulaire avec ces infos
- je mette a jour mon objet en base avec ces nouvelles valeurs (session.update(object))
Je suis donc parti sur un controller de type SimpleFormController avec la méthode formbackingobject où je recupere l'id passe en parametre de l'url avec request.getParameter("id"); puis je récupère mon objet avec hibernate et je le renvoie.
Cela fonctionne très bien et mon formulaire affiche les bonnes valeurs.
Puis je veux gérer la soumission des nouvelles valeurs pour l'enregistrement. J'ai donc dans ce même controller la méthode onsubmit dans laquelle j'enregistre en base l'objet récupéré dans le paramètre command de la méthode onSubmit.
Mon problème est le suivant:
Lorsque je submit mon formulaire, la méthode formbackingobject est appelé une nouvelle fois (Est ce normal ?) et du coup il essai de récupéré le paramètre id de la requête qui cette fois ci n'existe pas ce qui engendre une belle erreur.
Je dois probablement avoir un problème de compression de l'utilisation de ce controller. J'ai cherche pas mal mais je n'ai pas vu l'explication pour une modification d'objet (uniquement une création).
J'écris ce post d'un ordi où je n'ai pas le code, mais je vais essayer de le poster dans un autre message.
Merci d'avance pour vos réponses
Partager