Bonjour
J'ai le code suivant qui permet de remplir un hashmap par des String:
Ce résultat m'affiche:
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@Override public List<Offre> rechercheRapide(String CHAMP_TYPE_OFFRE, String CHAMP_VILLE, String CHAMP_REGION, String CHAMP_SECTEUR,String typeOffre, String ville, String region, String secteur) throws DAOException { Map myMap=new java.util.HashMap(); // Ajout des objet dans le tableau associatif myMap.put(CHAMP_TYPE_OFFRE, typeOffre); myMap.put(CHAMP_VILLE, ville); myMap.put(CHAMP_REGION, region); myMap.put(CHAMP_SECTEUR, secteur); // Afficher le contenu du MAP Set listKeys=myMap.keySet(); // Obtenir la liste des clés Iterator iterateur=listKeys.iterator(); // Parcourir les clés et afficher les entrées de chaque clé; String s="select * from Offre where "; while(iterateur.hasNext()) { Object key= iterateur.next(); s=s+(String)key+" = ? and "; } System.out.println("la requete est: "+s); ... }
region vient en 1er, suivi de type_offre, ville et secteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part la requete est: select * from Offre where region = ? and type_offre = ? and ville = ? and secteur = ? and
Pourtant lorsque j'ajoute les valeurs dans la Map, c'est type_offre qui est censé venir en 1er, suivi de ville, region et secteur.
Même dans ma Servlet l'ordre type_offre,ville, region, secteur est respecté:
Donc je ne comprends pas pourquoi j'ai :
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 public class RechercheRapide extends HttpServlet { private static final String CHAMP_TYPE_OFFRE = "type_offre"; private static final String CHAMP_VILLE = "ville"; private static final String CHAMP_REGION = "region"; private static final String CHAMP_SECTEUR = "secteur"; public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { HttpSession session = request.getSession(); String typeOffre = getValeurChamp( request, CHAMP_TYPE_OFFRE ); String ville = getValeurChamp( request, CHAMP_VILLE ); String region = getValeurChamp( request, CHAMP_REGION ); String secteur = getValeurChamp( request, CHAMP_SECTEUR); List<Offre> listeOffres = offreDao.rechercheRapide(CHAMP_TYPE_OFFRE, CHAMP_VILLE, CHAMP_REGION, CHAMP_SECTEUR, typeOffre, ville, region, secteur); Map<Long, Offre> mapListeOffres = new HashMap<Long, Offre>(); for ( Offre offre : listeOffres ) { mapListeOffres.put( offre.getId(), offre ); } session.setAttribute( ATT_SESSION_OFF, mapListeOffres ); } private static String getValeurChamp( HttpServletRequest request, String nomChamp ) { String valeur = request.getParameter( nomChamp ); if ( valeur == null || valeur.trim().length() == 0 ) { return null; } else { return valeur; } } }
Au lieu de:
Code : Sélectionner tout - Visualiser dans une fenêtre à part la requete est: select * from Offre where region = ? and type_offre = ? and ville = ? and secteur = ? and
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part la requete est: select * from Offre where type_offre = ? and ville = ? and region = ? and secteur = ? and
Partager