2010-07-16 6 views
0

Je veux créer un menu déroulant avec fonction de saisie semi-automatique. J'ai un objet rôle avec les propriétés roleId, roleDescription. Ma zone de recherche ne doit être complétée que par autocomplétion sur roleDescription. J'ai suivi cet exemple:
http://code.google.com/p/struts2-jquery/wiki/AutocompleterTagautocomplete struts2

autocomplétion-select.jsp

<sj:autocompleter 
          id="roles" 
          name="echo" 
          list="%{roles}" 
          listValue="roleDescription" 
          listKey="roleId" 
          selectBox="true" 
/> 

Autocompleter.java

@ParentPackage(value = "com.project.action") 
public class Autocompleter extends BaseAction { 

private String term; 

@Actions({ 
     @Action(value = "/autocompleter-select", results = { @Result(location = "autocompleter-select.jsp", name = "success") }), 
     @Action(value = "/autocompleter", results = { @Result(location = "autocompleter.jsp", name = "success") }), 
     }) 
public String execute() throws Exception { 

    return SUCCESS; 
} 

public void setTerm(String term) { 
    this.term = term; 
} 

public List<Role> getRoles() { 
    System.out.println("getting roles"); 
    return services.getRoles(); 
} 
} 

Répondre

0

Est-ce que ça marche pas?

Le @ParentPackage doit référencé un paquet Struts2 défini dans struts.xml et non un package Java.

+0

Je changé ParentPackage à jambes de force par défaut, il ne fonctionne toujours pas. :( – Nish

+0

je ne pense pas jquery déclenche l'action autocomplétion. – Nish

0

Vous pouvez utiliser le plugin dojo Struts2 et le code est le suivant il résout votre problème ici u juste besoin de passer une liste de tableau

<%@ page contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%> 
<html> 
<head> 
    <title>Welcome</title> 
    <sx:head /> 
</head> 
<body> 
    <h2>Struts 2 Autocomplete (Drop down) Example!</h2> 

    Country: 
    <sx:autocompleter size="1" list="countries" name="country"></sx:autocompleter> 
    </action> 
</body> 
</html>