Primefaces basic AutoVervollständigen funktioniert nicht

Ich versuche autocomplete demo .Ich erhalte keine Fehlermeldung aber der httprequest/response zeigt, dass es kommuniziert mit dem server, aber nicht die Bohne. Ich verwende die neueste version von primefaces 3.4.

Jede Hilfe ist willkommen.

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>

Hier ist die debug-Informationen aus den Chrome developer tools.

Anfrage:

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

Request-Header:

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

Form Daten:

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

Antwort-Header:

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
  • Hinzufügen Sie können die vollständige Quelle deiner bean? Es ist nützlich, um zu sehen, ob Sie die CDI oder JSF-managed beans-was Umfang, etc...
  • ich habe editiert und Hinzugefügt vollständigen Quellcode der bean-und xhtml-Seite.
  • versuchen Sie, die extends BaseMB von Ihrem CircleSearchBean Klasse und wieder überprüfen...
  • auch abnehmen es nicht funktionieren.
  • drücken Sie einen Buchstaben "a" zum Beispiel, und nichts passiert? jegliche Protokolle, die in der firebug-Konsole ? oder die server-logs? versuchen Sie, brechen Punkt in der complete-Methode ist es genannt wird, überhaupt ?
  • Aus Interesse, können Sie veröffentlichen Sie Ihre web.xml wie auch? (und faces-config.xml wenn Sie es benutzen). Wenn Sie den HTML-Code anzeigen sollten Sie die javascript angehängt (z.B. <script id="form:acSimple_s" type="text/javascript">$(function(){PrimeFaces.cw('AutoComplete','widget_form_acSimple',{id:'form:acSimple'});});</script>). Es wird nicht alles reparieren, aber vielleicht wollen Sie auch zu entfernen, die results Feld - es ist verdeckt in der complete() Methode.
  • Code zu reduzieren Lärm, entfernen Sie bitte extends BaseMB und wiederholen (und die update-Frage entsprechend). Als "nicht immer ein Fehler", hast du auch die server-logs? Standardmäßig (projectstage=Produktion), kann der client nicht erhalten, keine Rückmeldung auf Ausnahmen bei ajax-Anfragen.
  • Es gibt keine Fehler gemeldet werden, die in server-logs oder in der Konsole protokolliert. Bei mir lief es im debug-Modus ausgeführt wird, bis die filter-Klasse(die prüft, ob die session gültig ist) und verschwindet. Wie ich bereits in der Antwort, nach der Platzierung von "id" - Attribut es fest.

InformationsquelleAutor user1595858 | 2012-09-02
Schreibe einen Kommentar