Bonjour,
Sur notre projet, l'ancien architecte a mis en place de l'AJAX (dojo) permettant l'autocomplétion sur nos combobox. Cette autocomplétion ne fonctionne qu'à moitié puisque lorsque l'utilisateur tape les premières lettres, la recherche s'effectue bien, la liste est bien mise à jour mais elle n'apparait pas et l'utilisateur est alors obligé de cliquer sur la petite flèche de la combobox pour voir s'afficher les résultats. Nous voudrions que cette liste s'affiche au fur et à mesure que l'utilisateur tape des lettres (ou qu'il en supprime)
Voici (en simplifié) le code de la page jsp contenant la combobox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <%@taglib prefix="s" uri="/struts-tags" %> <s:head theme="ajax"/> <input dojoType="struts:ComboBox" dataUrl="/MonContexte/JSONList.do?name=PAYS" dropdownHeight="200" autoComplete="false" loadOnType="true" loadMinimum="2" visibleDownArrow="true" name="value" caseSensitive="false"/>
Voici le code de la jsp contenant la liste de résultats (JSONList.jsp) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <%@ page language="java" contentType="text/plain; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %> <%@ taglib prefix="s" uri="/struts-tags" %> <% request.setAttribute("decorator", "none"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server String sep=""; %> [<s:iterator value="list" ><%= sep %> ["<s:property value="libelle" escape="false"/>","<s:property value="id" escape="false"/>"]<% sep=",\n"; %></s:iterator> ]
L'action struts JSONList.do appelle une classe java qui recherche les résultats et renvoie sur JSONList.jsp
La version de struts utilisée 2.0.6
J'ai essayé les actions suivantes :
- Modification / ajout d'attributs à la balise <input>
- Modification de la version de struts utilisée
- Suppression de la communication client / serveur avec résultats stockés dans un fichier texte (cela marche)
Partager