2010-09-23 98 views
0
实现一个自动完成实用

没有针对此目的的内置标签。我需要使用Struts2的,jQuery插件

用户在文本框中输入一个字符,以输入字符开头的字符串应显示在列表的 表单中。 从列表中选择的项目应填充到文本框中。

P.S:实例和包含输入的字符演示提供显示字符串。但我只想显示那些以输入字符开头的字符串 。

回答

1

做到这一点的一种方式显示在那里说的pluguin的wiki page:Autocompleter该处理JSON结果。哟只需设置在你的JSP代码,然后你实现你的操作是这样的:

private static String[] staticLanguages = { ...a list... };                      
    private String term; 
    private String[] languages = Autocompleter.staticLanguages; 
    public String execute() throws Exception { 
      if (term != null && term.length() > 1) 
      { 
        ArrayList<String> tmp = new ArrayList<String>(); 
        for (int i = 0; i < staticLanguages.length; i++) 
        { 
          if (StringUtils.contains(staticLanguages[i].toLowerCase(), term.toLowerCase())) 
          { 
            tmp.add(staticLanguages[i]); 
          } 
        } 
        languages = tmp.toArray(new String[tmp.size()]); 
      } 
      return SUCCESS; 
    } 

只要改变StringUtils.contains线和检查,而不是如果开始时是一样的。

JSP标记是:

<sj:autocompleter 
    name="term" 
    id="languages" 
    href="%{remoteurl}" 
    delay="50" 
    loadMinimumCount="2" 
/> 

我认为这应该工作。只要看看wiki中的示例代码并尝试一下。