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

Servlets/JSP Java Discussion :

Bean / Jsp / Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut Bean / Jsp / Servlet
    Bonjour

    Dans une jsp comportant une form, j'utilise un bean (monBean avec scope = session). J'ai également une servlet qui traite l'action de la form.

    Dans la jsp, comment je peux faire pour renseigner les propriétés de mon bean (à partir des valeurs saisies dans la form) avant d'effectuer l'action. Cela permettera à ma servlet de récupérer les nouvelles valeurs des propriétés de mon bean sans passer par des instructions de type : request.getParameter("unParametre") );

    Lorsque, dans ma servlet, j'utilise
    maClasse o = (maClasse )session.getAttribute("monBean");
    je récupérer les proproriétés, mais sans les nouvelles valeurs saisie dans la form

    Merci pour toute aide.

  2. #2
    Membre régulier Avatar de gamel
    Inscrit en
    Avril 2006
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 128
    Points : 107
    Points
    107
    Par défaut
    Bonjour, je ne sais pas si j'ai bien compris ce que tu veux faire mais bon si tu veux récupérer les valeurs de ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class FormulaireAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
        throws IOException,ServletException {
     
            /* le formulaire est obligatoirement valide */
            FormulaireBean formulaire=(FormulaireBean)form;
            request.setAttribute("_attribut",formulaire.get_attribut());
    Dossou??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Bonjour,
    je te remercie beaucoup pour ta réponse
    je voudrais savoir que représente _attribut ?

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ta solution gamel ne peut pas convenir à keopsk qui n'utilise pas Struts.

    Tu pourrais utiliser le tag <jsp:setProperty> comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:setProperty name="nomBean" property="nomPropriete" value="valeurPropriete"/>
    Mais dans ce cas, tu ne respectes pas le modèle MVC. La jsp a un rôle de vue, elle ne doit pas mettre à jour des composants.

    Donc, le mieux, c'est de récupérer les valeurs saisies dans le formulaire dans la servlet via des request.getParameter et ensuite de mettre à jour ton bean via les setters.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre régulier Avatar de gamel
    Inscrit en
    Avril 2006
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 128
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par c_nvy
    Ta solution gamel ne peut pas convenir à keopsk qui n'utilise pas Struts.
    Euh oui, je me suis un peu emballé la ... désolé ...
    Dossou??

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Euh oui, je me suis un peu emballé la ... désolé ...

    Gamel,
    je ne vois pas les choses de cette façon. Je pars du principe que tu veux rendre service.. tu n'as pas à être désolé, c'est moi qui te remercie

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par c_nvy
    Ta solution gamel ne peut pas convenir à keopsk qui n'utilise pas Struts.

    Tu pourrais utiliser le tag <jsp:setProperty> comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:setProperty name="nomBean" property="nomPropriete" value="valeurPropriete"/>
    Mais dans ce cas, tu ne respectes pas le modèle MVC. La jsp a un rôle de vue, elle ne doit pas mettre à jour des composants.

    Donc, le mieux, c'est de récupérer les valeurs saisies dans le formulaire dans la servlet via des request.getParameter et ensuite de mettre à jour ton bean via les setters.
    oui tu as tout à fait raison, c'est la solution que j'aurais aimé éviter, car j'ai une vingtaine de parametre donc tu réalises. J'aimerais éviter de trop charger la servlet (qui fait office de contrôleur).

    J'ai trouvé une autre solution mais je ne sais pas si elle est vraiment élégantes. voilà.
    J'ai créé une autre jsp intermédiaire qui traite l'action de ma jsp (contenant la form). Elle permet de valoriser les propriétés de bean et faire un forward vers la servlet qui traite réellement l'action. Cette nouvelle jsp contient le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <jsp:useBean id="monBean" class="maClasse" scope="session"/>
    <jsp:setProperty name="monBean" property="*" />
    <jsp:forward page="maServletControleur" />
    Le bean est donc disponible dans ma session avec ses nouvelles valeurs. Je peux donc le recupérer dans ma servlet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          session = request.getSession(true); 
          maClasse item = (maClasse)session.getAttribute("monBean");

    Merci pour toute remarque

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par keopsk
    J'ai trouvé une autre solution mais je ne sais pas si elle est vraiment élégantes. voilà.
    Pas très "élégante" à mon goût mais le principal, c'est que cette solution te convienne.
    Modératrice Java - Struts, Servlets/JSP, ...

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/01/2014, 18h42
  2. Développement web java jsp servlet bean
    Par nicbond dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 26/06/2009, 14h02
  3. JSP Servlet et bean scope request
    Par yodutouf dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/09/2007, 08h50
  4. [JSP/Servlet] Outils pour developper?
    Par BenoitM dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2004, 11h03
  5. [JSP][SERVLET] recup donnees form
    Par 74greg dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/09/2003, 10h22

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