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

Struts 1 Java Discussion :

Récupérer httpServletRequest dans bean formulaire


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Par défaut Récupérer httpServletRequest dans bean formulaire
    Bonjour,

    voici mon pb:
    J'aimerais récupérer le httpServletRequest dans mon bean formulaire et je n'arrive pas a trouver comment faire. (sachant que je ne peux pas le récupérer dans la classe Action comme cela se fait habituellement/facilement).

    J'explique pourquoi je veux faire ca car je m'y prend peut etre mal...

    En fait j'ai une page jsp ou j'affiche les informations d'un client. Ces informations sont affichées de cette manière:

    Nom______|_Prenom___|__Date naissance__|
    --------------------------------------------
    delace______jean__________13/54/4059
    dupond_____paul___________34/34/4434


    Je voudrais pouvoir afficher ces clients en les triant par nom.
    J'ai donc fait un lien sur "Nom" de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:link page="/listeClients.do?orderBy=Nom">
    	Nom
    </html:link>
    Ce code permet donc de réafficher la page courante mais en changeant le paramètre orderBy.

    J'aimerais donc récupérer ce paramètre orderBy dans le formulaire pour pouvoir ensuite faire ma requete dans ma bdd et renvoyer ma liste de clients ordonnée. Ce qui a priori devrait être possible par un request.getParameter mais pour ca il faut le httpServletRequest que je ne sais pas comment récupérer..


    J'espère avoir été claire.. si quelqu'un a une idée!
    merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    Je suis pas sûr que ce soit ce que tu attend mais tu peux acceder à la requête http depuis ta JSP de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    	String orderByValue = (String) request.getAttribute("orderBy");
    %>
    et l'utiliser ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link page="/listeClients.do?orderBy=<=orderByValue %>">
    	Nom
    </html:link>

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Par défaut
    Et non malheureusement cela n'est pas ca... :s

    Moi je voudrais, à partir d'une jsp, passer un attribut (orderBy) en paramètre afin d'y avoir accès dans l'ActionForm de la jsp suivante.

    Le truc c'est qu'habituellement pour accéder aux paramètres c'est facile à partir d'une jsp (comme tu l'a dis) ou à partir de la class Action car la méthode execute a comme paramètre ce fameux HttpServletRequest.
    Mais dans mon cas je suis dans une classe ActionForm et n'ait donc pas cet objet HttpServletRequest à disposition.

    Voila si ca peut aider a déclencher une vague de réponse... :p

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    Il suffit de definir orderBy comme un membre de ton ActionForm, non ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    salut,
    Ton lien "/listeClients.do?orderBy=Nom" ne pointe pas vers une page JSP mais vers l'ActionMapping que tu as défini comme "/listeClients" , donc la requête arrive d'abord à l'Action associée avant que le résultat ne soit réaffiché. Ce qui veut dire que tu peux très bien récupérer ce paramètre "orderBy" dans l'Action, faire la requête bdd, remplir l'ActionForm, puis forwarder vers la même page jsp qui pourra alors afficher la liste triée ...

  6. #6
    Membre averti
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Par défaut
    Tout d'abord merci pour vos réponses, voici ce que j'ai fait du coup:

    j'ai ma page listeClients.jsp avec mon lien comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html:form action="listeClients-action">
    	<html:link page="/listeClients.do?order=Nom">
    		Nom
    	</html:link></center>
    </html:form>
    Du coup je récupère le paramètre passé précédemment dans ma classe ListeClientsAction.java comme ceci:
    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
    16
    17
    18
    19
     
    public class ListeClientsAction extends Action{
        public ActionForward execute( 	ActionMapping mapping,
                						ActionForm form,
                						HttpServletRequest request,
                						HttpServletResponse response)
                						throws Exception
        {
        		String orderVar = request.getParameter("order");
        		ListeClientsForm listeClientsForm = (ListeClientsForm)form;
        		listeClientsForm.setOrder(orderVar);
     
        		//GestionClient gc= new GestionClient();
        		//listeClientsForm.setListeClients(gc.getClients(orderVar));
     
        		return mapping.findForward("success");
        }
     
    }
    enfin pour information voici mon fichier formulaire ListeClientsForm.java:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public class ListeClientsForm extends ActionForm
    {
    	private static final long serialVersionUID = 1L;
     
    	private ArrayList<ElfClient> listeClients = new ArrayList<ElfClient>();
    	private String choix;
    	private String order="nom";
     
    	public ArrayList getListeClients() {
    		GestionClient gestionCli=new GestionClient();
    		setListeClients( gestionCli.getClients(order) );
    		return listeClients;
    	}
     
    	public void setListeClients(ArrayList<ElfClient> client) {
    		this.listeClients = client;
    	}
     
    	public String getChoix(){
    		return choix;
    	}
     
    	public void setChoix(String choix)
    	{
    	   this.choix = choix;
    	}
     
    	public String getOrder(){
    		return order;
    	}
     
    	public void setOrder(String order)
    	{
    	   this.order = order;
    	}
     
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
    		listeClients = new ArrayList<ElfClient>();
    		choix=new String();
    	}
    }
    Le truc c'est que quand je clique sur mon lien "nom" ca ne trie rien du tout. Je n'ai pas l'impression qu'il passe réellement par la classe Action comme tu le dis (mais je me trompe peut etre) et du coup j'ai toujours la meme page avec les clients non triés.

    Voili voilou si qqn sait d'ou vient mon erreur ca serait cool

  7. #7
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonsoir,

    un problème de casse ?
    order=Nom
    et "nom"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer getElementById dans un formulaire
    Par petchi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/11/2014, 02h33
  2. Récupérer date dans un formulaire
    Par hartecel dans le forum Langage
    Réponses: 5
    Dernier message: 16/06/2008, 10h47
  3. Récupérer données dans un formulaire continu
    Par benazerty dans le forum Access
    Réponses: 1
    Dernier message: 12/09/2006, 17h44
  4. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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