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 :

Passer des identifiants BDD dans une Url et Affichage dynamique


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut Passer des identifiants BDD dans une Url et Affichage dynamique
    Re bonjour à tous,

    Pour ceux qui ne le savent pas encore je cherche à créer des pages dynamiques avec réécriture d'url.

    Pour l'instant, j'ai créer une jsp qui affiche le contenu d'une table "départements" qui affiche une liste des départements de France.

    Maintenant la partie plus corsée arrive :

    Je voudrais que chaque ligne de cette liste fasse un lien vers une jsp qui affichera une liste de villes dont le code postal débute par le numéro du département.

    Concrètement :
    Dans ma jsp département, en cliquant sur le département île de France, dont l'identifiant est 75 (la liste des département à 2 colonnes : le num du département et son nom), je souhaiterai atterrir sur une jsp qui affiche la liste des villes dont le code postal commence par 75.


    Pour l'instant j'ai créé un fichier VilleBean, VilleDAO, VilleMapDAO et Ville SQL.

    J'ai plus de mal avec mon action et ma jsp.

    Comment faire pour passer dans un lien un identifiant de bdd ?

    Ci dessous ce que contient ma jsp qui affiche les départements ( en rouge les liens qui n'existe pas encore, c'est juste pour vous montrer le type de lien souhaités) :
    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
    <table>
    
    <%int cpt=0; %>
    <logic:iterate id="deptmp" name="departementList">
    
    <tr>
    //Ceci est la colonne de la liste affichant les numéros des département
    <td><html:link href="http://www.monsite/departements/villes?id="id_departement">"> <bean:write name="deptmp" property="id_departement" /></html:link></td>
    
    //Ceci est la colonne de la liste affichant les noms des département
    <td><html:link href="http://www.monsite/departements/villes?id="id_departement"><bean:write name="deptmp" property="nom_departement" /></html:link></td>
    
    </tr>
    <%cpt ++; %>
    </logic:iterate>
    
    
    </table>
    Le but étant que si je clique sur le département 01, la jsp d'affichage (content.ville qui n'existe pas encore) fasse appel à une requête sql de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from MATABLE where code_postal Like '01%'
    et affiche le résultat de cette requête dans une liste

    Est ce que je dois créer un fichier de type VilleForm, sachant que ce qui m'intéresse c'est juste un affichage de liste.

    Désolé si c'est pas toujours clair mais Java a tendance à me ronger le cerveau ^^

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Tu veux faire passer dans l'url qui accède à ton action ville le login et mdp de ta BDD ?

    Niveau sécurité c'est assez bof.

    qu'elle est le lien entre un compte utilisateur BDD et les départements ?
    Est-ce une application avec plusieurs utilisateur nécessitant login/mdp ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    non tu as raison pour l'url,j'utiliserai une régle de réécriture pour ça.
    Je voulais pas faire passer le login et le mot de passe de la bdd mais l'identifiant des département contenus dans la table départements

    exemple : si on clique sur le département 75 :

    http://monsite.fr/departements/villes-du-75.html

    Et la page affichée serait une liste des villes dont le code postal commence par 75 .

    Concernant l'application, c'est une application front office, sans login ni mot de passe.

    La but est juste d'afficher des villes en fonction du département choisi par l'utilisateur au préalable.

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Donc sans ce cas là

    tu as ton lien http://www.monsite/departements/villes?id="id_departement

    Ville correspond à une action définie dans ton struts config.xml

    Tu as donc une class Ville qui implémente Action

    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 ActionVille implement Action
    {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    String cp = request.getParameter("villes");
     
    if(null!cp)
    {
      excution de la requetes pour recuperer les villes et tu en genere une liste de villes
     
    }
     
    request.setParameter("listeVille",listeVille);
    return mapping.findForward("succes");
     
    }
    }
    ou succes est mapper a ville.jsp toujours trus-config.xml au nuveau de l'action

    Ta ville.jsp n'a plus qu'a lire les donnes de ta request et les afficher

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    Merci pour ta réponse .


    Je voudrais savoir comment ferais tu les requêtes qui devront afficher les villes :

    Est ce que la requête ci dessous fonctionnerai ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
    FROM Ma_table
    WHERE code_postal
    LIKE '#value#%'
    Value prenant la valeur de "id_departement"

    Donc de quelle manière communique t'on d'une jsp vers la bdd pour que le système exécute la requête et modifie #value# par la valeur de l'id_departement sélectionné dans la jsp ?(d'habitude on fait l'inverse)

    Je sais pas si j'ai été clair...

    En tout cas merci encore de ta réponse je vais explorer dans ce sens.

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Je pense qu'il te manque quelques bases et notion sur les principes de Struts ainsi que sur l'exécution de requêtes.

    tu utilises bien le Framework Strust ? (je te demande ca car tu as posté dans cette section)
    Struts suis le principe MVC modèle vue contrôleur

    la vue correspond à tes JSP qui ne font qu'afficher les données.
    Action servlet sert de contrôleur et c'est elle qui rédige vers la bonne action ou bonne JSP.
    Les actions on accès au données qui représente le modèle.

    note :espère ne pas avoir dit trop de bêtise

    Donc Quand tu cliques sur le lien de ta première JSP le mécanisme doit être le suivant.

    JSP liste département -> ActionVilles(c'est à ce niveau là que tu consultes la base de données et exécutes la requêtes et tu places le résultat dans la request comme expliqué plus haut) -> JSP liste Ville (elle lis la liste de ville à partir de la request et les affiche)

    Pour ce qui est de ta request je pense que tu connais la valeur exacte du département, tu n'est donc pas obligé à utiliser un like un égale doit suffire.

    De plus pour une optimisation des requêtes il faut passé par des preparatedStatement.
    SELECT * FROM Ma_table WHERE code_postal = ?

    regarde la section dédié de cette FAQ http://java.developpez.com/faq/jdbc/...paredstatement

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

Discussions similaires

  1. Passer des paramètres cachés dans une URL?
    Par PeteZah dans le forum C#
    Réponses: 2
    Dernier message: 09/09/2008, 14h41
  2. Passer un caractére spécial dans une url
    Par hedgehog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/06/2008, 12h23
  3. Passer des paramètres à SugarCRM dans l'url
    Par adilooo dans le forum SugarCRM
    Réponses: 0
    Dernier message: 28/04/2008, 17h48
  4. Réponses: 1
    Dernier message: 15/04/2008, 18h36
  5. Executer des script perl dans une url
    Par Spy*** dans le forum Langage
    Réponses: 0
    Dernier message: 17/03/2008, 12h52

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