JqueryUI Autocomplete 自动补全实例

1:现在Autocomplete已经成为jQuery UI的Widgets的一员。看了它实现自动补全的功能,感觉还OK,使用起来蛮方便的。因此我自己写了个程序利用Jquery UI Autocomplete实现自动补全功能。

简单介绍一下:例子利用JSP+servlet+oracle实现的,后台根据前台输入的相关关键字到后台取数据返回JSON对象给前台。

首先:导入相关的JS与CSS,其中包括:

jquery-ui-1.8.10.custom.css;

jquery-1.4.4.min.js;

jquery-ui-1.8.10.custom.min.js

前台页面代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>">

  <title>My JSP 'autocomplete.jsp' starting page</title>

  <link type="text/css" href="css//jquery-ui-1.8.10.custom.css"
   rel="stylesheet" />
  <script type="text/javascript" src="js_autocom/jquery-1.4.4.min.js"></script>
  <script type="text/javascript"
   src="js_autocom/jquery-ui-1.8.10.custom.min.js"></script>
  <script type="text/javascript"><!--
   $(function(){

    //$("#autocomplete").autocomplete({
     //source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"]
    //});
    
    $("#autocomplete").autocomplete({
     minLength:1, //表示输入多少个字才出现自动补全框    
     source:function(request,response){
      $.ajax(
       {
        url: http://localhost:<%=request.getLocalPort() %>/JuqeryUI/Autocomplete",
        dataType: "json",
        data: request,
        success:function(data){
         response(data);
        }
       }
      );
     }
     
    });
  });
</script>
 </head>

 <body>
  <input type="text" id="autocomplete"
   style="z-index: 100; position: relative" />
 </body>
</html>

后台处理代码:

 待会用到JSON转换时,需要一个JSON包,到网上下载:json-lib-2.4-jdk15.jar

 

public void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {

  response.setContentType("text/html");
  request.setCharacterEncoding("UTF-8");
  response.setCharacterEncoding("utf-8");
  //得到页面输入的参数
  String param = request.getParameter("term");
  //转码,不然中文会出现乱码
  String term = new String(param.getBytes("iso8859-1"),"utf-8");
  System.out.println(term+"00000000");
  //根据输入的关键字查找
  List<String> listContent = DBConnec.getAutocomContent(term); 
  
  System.out.println(param+"--------------'");
  //转换为JSON格式
  JSONArray jsonObject = JSONArray.fromObject(listContent);    
  PrintWriter out = response.getWriter();
  out.write(jsonObject.toString());

  out.flush();
  out.close();
 }

//getAutocomContent()方法是查询数据库返回List对象。代码就不贴出来了,很简单。

好啦,程序搞定。测试,成功!实现的效果如下




程序只是实现了简单的功能,异常处理,代码规范等等没有写的那么到位,希望大家理解 ^_^。 大家有什么看法意见,欢迎评判。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值