Bonjour tout le monde,
je débute avec struts2 et avant de venir poser ma question ici, j'ai longtemps chercher sur le net, mais j'ai pas trouver de réponse concret. Voila mon problème.
Je souhaiterez mettre en place un système de recherche avec auto complétion sur une liste dynamique. Je souhaiterez pouvoir que ma liste soit reload si mon texte change.
Pour le moment j’essaye juste de reload la même liste au bout du 3éme caractére, mais je rencontre un problème qui je pense sera le même si ma changé d'une liste à une autre. Le problème est que au chargement de la page j'ai bien une liste qui s'affiche en fonction des 3 premiers caractère tapé, sauf que au 4éme caractère, dans ma classe action je vois bien que ma liste a été mise à jour, mais il ne me le propose plus au niveau de ma vue.
J'utilise la version 2.3.1 de struts2 et la même version pour le plugin dojo.
Voila le code de la jsp:
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 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib uri="/struts-dojo-tags" prefix="sx"%> <%@taglib uri="/struts-tags" prefix="s"%> <html> <sx:head /> <head> <title>Auto complete</title> </head> <body> <h3>Auto complete Dropdown | Textbox</h3> <s:form action="displayCountry"> <sx:autocompleter name="country" list="cricketNations" showDownArrow="false" loadOnTextChange="true" loadMinimumCount="2" label="Cricket Nations"/> <s:submit /> </s:form> </body> </html>
la mapping avec le fichier struts.xml:
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 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" extends="struts-default" namespace="/"> <action name="autoComplete" class="com.simplecode.action.AutoCompleteAction"> <result name="success">autoComplete.jsp</result> </action> <action name="displayCountry" class="com.simplecode.action.AutoCompleteAction" method="displayCountry"> <result name="success">WelcomeToCountry.jsp</result> </action> </package> </struts>
et de ma classe action:
Si vous avez une idée pour régler ce problème je suis preneur.
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
43
44
45
46
47
48
49 package com.simplecode.action; import java.util.ArrayList; import com.opensymphony.xwork2.Action; public class AutoCompleteAction implements Action { public ArrayList<String> cricketNations = new ArrayList<String>(); public String country; public String execute() { populateCircketNations(); System.out.println("SUCCES"); return SUCCESS; } public void populateCircketNations() { cricketNations.clear(); cricketNations.add("Australia"); cricketNations.add("England"); cricketNations.add("India"); cricketNations.add("West Indies"); cricketNations.add("New Zealand"); cricketNations.add("Pakistan"); cricketNations.add("Bangladesh"); cricketNations.add("South Africa"); cricketNations.add("Sri Lanka"); cricketNations.add("Zimbabwe"); System.out.println("le pays: "+country); System.out.println("la liste des pays: "+cricketNations); } public String displayCountry() { return SUCCESS; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } }
Merci d'avance les amis
Partager