类似于淘宝网上的宝贝搜索及Google搜索样,输入一个字就显示相关字符,就可以直接选择,而不用在文本域中输入完全的字符(下面可能已经自动联想出来了)。那有Struts2作为项目的表示层时,要实现这样的效果如何实现,难道就是所谓的AJAX(键盘弹起时发送一个url,那要是网速慢时不就显示不出来了。)?

解决方案 »

  1.   

    Ajax只是其中一个部分而已,还有后台的模糊匹配支持。
      

  2.   

    你可以去搜索Jquery自动完成插件...
    里面有很好的Demo
      

  3.   

    ajax主要是负责异步数据传输。
    这个自动提示, 需要后台进行匹配后传给浏览器, 浏览器里还要使用jquery等javascript的东西来显示出来, 还要处理键盘事件,鼠标事件等,要把这个功能做好,需要不少代码。
      

  4.   

    难道就是所谓的AJAX(键盘弹起时发送一个url,那要是网速慢时不就显示不出来了。)?你猜对了
      

  5.   

    你在文本框中输入一个字符的时候肯定有一个键盘事件,这里用js实现,将文本框的内容提交到后台,当然用的是Ajax异步提交的方式,主要是不刷新页面;然后后台在数据库中模糊匹配,返回到页面的时候,再将里面的信息输出到文本框中(最好是以下拉框的方式呈现,毕竟模糊匹配不会只有一个结果的)。
    一般都是这样来实现的,至于楼主提到的问题,的确也存在,加入网速不是很好的时候可能会很慢,以致显示不出来,但是这个一般通过一些优化的方式来解决。如果客户的网速真的这么慢,那他还会上网?所以只要你在匹配结果的时候把效率提高些就可以了。
      

  6.   

    原理是这样
    当你输入一个字母 通过异步请求会去查数据库是否以这个字母开头的 数据
    select X from table where x.name like .....
    然后将查到 通过ajax送到 页面
      

  7.   

    可以用jquery的自动完成插件!!!
      

  8.   

    最好的解决方案是把所有数据全部取到页面上,再去匹配,个人觉得此处不可用ajax
      

  9.   

    恩,各位讲的都很好,jquery插件还没用过,如何使之与struts2很好的结合起来。
      

  10.   

    我记得struts2的demo里就做过这个功能
      

  11.   

    Max的Struts2教程里有这个Demo Struts2与AJAX