Jsf RichFaces自动完成:获取自动完成方法的InputValue()

时间:2012-12-14 23:02:10

标签: java jsf java-ee autocomplete richfaces

我的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”,因为他排除了一个值...我必须在这里提交哪个值?!

1 个答案:

答案 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) {