有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的XHTML页面的一部分:

<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:

@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
  }

我总是在我的邮箱里找到“未知财产搜索名”。用于autocompleteMethod="#{autocompletMit.searchbyName()}"的xhtml,因为他排除了一个值。。。我必须在这里提交哪个值


共 (1) 个答案

  1. # 1 楼答案

    autocompleteMethod="#{autocompletMit.searchbyName()}"
    

    当你有一个接受参数的方法时,这是不正确的。去掉那些括号。RichFaces ^{} showcase example也没有显示您应该调用一个无参数的方法


    Method not found: Controller.AutoCompleteMitarbeiter@7a88716.searchbyName (java.lang.String)

    很明显,它期望一个searchbyName方法接受一个String参数。你的需要一个Object参数。这不匹配。相应地修复它:

    public List<String> searchbyName(String query) {