我的xhmtl-Page的一部分:
<rich:autocomplete autocompleteMethod="#{autocompletMit.searchbyName()}" mode="cachedAjax"
fetchValue="#{controller.mitarbeiter.mitarbeiterName}" autocompleteList="#{autocompletMit.autocompleteList}" minChars="1" autofill="true" var="it" >
<h:outputText value="#{it.mitarbeiterName}" style="font-weight:bold"/>
</rich:autocomplete>
Bean for autocomplete:
@ManagedBean(name = "autocompletMit")
@RequestScoped
public class AutoCompleteMitarbeiter implements Serializable {
@EJB
private Transaktionssteuerung transakt;
private List<String> autocompleteList = new ArrayList<String>();
String nameSearch;
public List<String> searchbyName(Object o) {
String test = (String) o;
List<Mitarbeiter> alleMitarbeiter = transakt.alleMitarbeiter();
for (Iterator<Mitarbeiter> it = alleMitarbeiter.iterator(); it.hasNext();) {
if (it.next().getMitarbeiterName().startsWith(test)) {
autocompleteList.add(it.next().getMitarbeiterName());
}
}
return autocompleteList;
}
//getter & setter
}
我总是在我的.xhtml中为autocompleteMethod="#{autocompletMit.searchbyName()}"
获取“未知属性searchbyName”,因为他排除了一个值...我必须在这里提交哪个值?!
答案 0 :(得分:5)
autocompleteMethod="#{autocompletMit.searchbyName()}"
当你有一个带参数的方法时,这是不正确的。删除这些括号。 RichFaces <rich:autocomplete>
showcase example也完全没有显示你应该调用无参数方法。
找不到方法:Controller.AutoCompleteMitarbeiter@7a88716.searchbyName(java.lang.String)
它告诉它期望searchbyName
方法采用String
参数。你的论点是Object
。这不匹配。相应地修复它:
public List<String> searchbyName(String query) {