2012-09-02 1 views
3

J'essaye autocomplete demo .Je ne reçois aucune erreur mais le httprequest/réponse montre qu'il communique avec le serveur mais pas au bean. J'utilise la dernière version de Primefaces 3.4.Primefaces autocomplete basique ne fonctionne pas

Toute aide est appréciée.

Bean:

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.List; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ViewScoped; 
import com.zreflect.emyed.managedbean.BaseMB; 

@ManagedBean 
@ViewScoped 
public class CircleSearchBean extends BaseMB implements Serializable { 
    private static final long serialVersionUID = 1L; 
    private String selected; 
    List<String> results = new ArrayList<String>(); 
    public List<String> complete(String query) { 
     List<String> results = new ArrayList<String>(); 
     for (int i = 0; i < 10; i++) { 
      results.add(query + i); 
     } 
     return results; 
    } 
    /** 
    * @return the selected 
    */ 
    public String getSelected() { 
     return selected; 
    } 

    /** 
    * @param selected 
    *   the selected to set 
    */ 
    public void setSelected(String selected) { 
     this.selected = selected; 
    } 
} 

XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:c="http://java.sun.com/jsp/jstl/core"> 
<h:head> 
    <title><h:outputText value="test" /></title> 
</h:head> 

<h:body> 
<h:form> 
<p:autoComplete value="#{circleSearchBean.selected}" completeMethod="#{circleSearchBean.complete}"/> 
</h:form> 
</h:body> 
</html> 

Voici les informations de débogage des outils de développement Google Chrome.

Demande:

Request URL:http://localhost:8080/PrimefacesTest/faces/index.xhtml 
Request Method:POST 
Status Code:200 OK 

têtes de requête:

Accept:application/xml, text/xml, */*; q=0.01 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Connection:keep-alive 
Content-Length:157 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Cookie:JSESSIONID=60Wd6aXSj6rDbPOgvMCoFJFF.undefined 
Faces-Request:partial/ajax 
Host:localhost:8080 
Origin:http://localhost:8080 
Referer:http://localhost:8080/PrimefacesTest/faces/index.xhtml 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1 
X-Requested-With:XMLHttpRequest 

données du formulaire:

javax.faces.partial.ajax:true 
javax.faces.source:j_idt8 
javax.faces.partial.execute:j_idt8 
javax.faces.partial.render:j_idt8 
j_idt8:j_idt8 
j_idt8_query:hello 

têtes de réponse:

Cache-Control:no-cache 
Content-Length:346 
Content-Type:text/xml;charset=UTF-8 
Date:Sun, 02 Sep 2012 21:11:42 GMT 
Server:Apache-Coyote/1.1 
X-Powered-By:JSF/2.0 
+0

Pouvez-vous ajouter la source complète de votre bean? Il est utile de voir si vous utilisez des beans gérés CDI ou JSF, quelle portée, etc ... –

+0

@HoundDog J'ai édité et ajouté la source complète de la page bean et xhtml. – user1595858

+0

essayez de supprimer le 'extends BaseMB' de votre classe' CircleSearchBean' et vérifiez à nouveau ... – Daniel

Répondre

1

Il fonctionne maintenant comme indiqué dans la démo après avoir ajouté l'attribut "id" à la saisie semi-automatique.

<p:autoComplete id="autocomplete" value="#{circleSearchBean.selected}" 
    completeMethod="#{circleSearchBean.complete}"/> 

Dans un projet séparé, il fonctionne sans attribut "id". On dirait un bug.