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 IhremCircleSearchBean
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, dieresults
Feld - es ist verdeckt in dercomplete()
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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es jetzt funktioniert, wie gezeigt, in der demo nach dem hinzufügen der "id" - Attribut autocomplete.
In einem separaten Projekt zu arbeiten, ohne eine "id" - Attribut. Sieht aus wie ein bug.