`
xuningxiaoni
  • 浏览: 33935 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

js做成google那种方式

阅读更多
后台servlet的代码

package com.mobilecn.kys.utils;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mobilecn.kys.beans.TbOrganization;
import com.mobilecn.kys.beans.TbPerson;
import com.mobilecn.kys.business.api.PersonBusinessApi;
import com.mobilecn.kys.business.impl.PersonBusinessImpl;

public class AutoCompleteServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


public void init() throws ServletException {

}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String keyword = request.getParameter("keyword");

keyword = StringUtil.changeCharacterToUtf(keyword);

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

PersonBusinessApi personBusiness = new PersonBusinessImpl();

List personList = null;

Long personid = 0L;
String name = null;
String unit = null;
String identify = null;
TbOrganization oid=null;

StringBuffer bf = new StringBuffer();

PrintWriter out = response.getWriter();

keyword = (keyword == null ? "" : keyword.trim());

personList = personBusiness.select("username like '%" + keyword + "%'");

if (personList == null) {
return;
}

int lenthg = personList.size();

bf.append("[");

for (int i = 0; i < lenthg; i++) {

TbPerson person = (TbPerson) personList.get(i);

personid = person.getPersonid();
personid = personid == null ? 0L : personid;

name = person.getUsername();
name = name == null ? "" : name;

identify = person.getPersonfigure();
identify = identify == null ? "" : identify;

oid = person.getTbOrganization() == null ? null : person.getTbOrganization();
unit = oid == null ? null : person.getTbOrganization().getUnitname();

bf.append("{");
bf.append("'");
bf.append("text");
bf.append("'");
bf.append(":");
bf.append("'");
bf.append(name);
bf.append("'");
bf.append(",");
bf.append("'");
bf.append("content");
bf.append("'");
bf.append(":");
bf.append("'");
bf.append(unit);
bf.append(",");
bf.append(identify);
bf.append(",");
bf.append(personid);
bf.append("'");

bf.append("}");

if (i != lenthg - 1) {
bf.append(",");
}

}// for
bf.append("]");
bf.append(";");

out.write(bf.toString());
out.flush();
out.close();
out = null;

System.out.println("bfbfbfbf  " + bf.toString());

}

protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
this.doGet(arg0, arg1);
}

}


js文件看一下附件

ajax的实现方法
  //<![CDATA[
/* 兼容IE 7.0以前版本 XMLHttpRequest */
if(window.ActiveXObject)//IE浏览器
{
window.XMLHttpRequest = function()
{ var x=null;
var progIds = [
'MSXML3.XMLHTTP.5.0',
'MSXML3.XMLHTTP.4.0',
'MSXML3.XMLHTTP.3.0',
'MSXML3.XMLHTTP.2.0',
'MSXML3.XMLHTTP',
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'];
for (var i=0; i<progIds.length; i++)
{
// alert(progIds[i]);
try { x = new ActiveXObject(progIds[i]); break; } catch (ex) {};
}
x=null;
x = new ActiveXObject("MSXML2.XMLHTTP");
if(!x)//异常,创建对象实例失败
{
window.alert("创建XMLHttp对象失败!");
return false;
}
          return x;
}
}

    var autoComplete = null;
var http_request = null;
  // alert("aa");
 
   
     
window.onload = function pageLoadHdle()
{
        var configuration =
{
          instanceName: "autoComplete",
          textbox: document.getElementById("magazineAuto"),
          height: 200
          //dataSource: this.completeDataSource
        };
autoComplete = new neverModules.modules.autocomplete(configuration);
       
       
        autoComplete.useContent = true;

       /* 当useContent为false时,此功能生效,确定是否忽略速度,
        如果不忽略速度,则效率提高30%左右,(没测试过,估计的)
        ,也就是没有高亮功能,适合纯DHTML的匹配 */
        autoComplete.ignoreSpeed = true;


        /* 开启方向键(小键盘) */
        autoComplete.useArrow = true;

        /* 当数据量较大时,自动截取前部分的数据,提高效率 */
        autoComplete.autoSlice = true;
        //autoComplete.sliceRange.high = 20;//显示前面20条
//要调节显示出来的结果的左右两边的宽度可以去CSS那里设置,autocomplete.css

        /* 无论输入字符串在dataSource的何处,始终匹配 比如输入1,那么21,12都会显示出来*/
        autoComplete.ignoreWhere = true;

/* 设置content的数据是否要在检索结果中显示出来 vincent于2007-8-22修改*/
        autoComplete.ifcontent = true;


        /* 一个空格代表一个或多个字符(串) */
        autoComplete.useSpaceMatch = true;

        /* 忽略大小写 */
        autoComplete.ignoreCase = true;

        autoComplete.callback = callbackHdle;

        /* 以上为可选项,这里的示例都是默认值 } */
        autoComplete.create();
       // autoComplete.expandAllItem();//显示全部数据
      }
    function AjaxHdleMagazine(evt,magazineURL)
{
    //alert("aaa");
   // var  conValue =document.getElementById('autoRemark').value
//if(conValue!=document.getElementById('magazineAuto').value)
//{
//开始初始化XMLHttpRequest对象
http_request = new XMLHttpRequest();
http_request.onreadystatechange = function() {loadCompleteData(evt)};
//确定发送请求方式,URL,及是否同步执行下段代码
http_request.open("GET", magazineURL+"?type=view&search=" + document.getElementById("magazineAuto").value, true);
http_request.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
http_request.send(null);
// }
//document.getElementById('autoRemark').value=conValue;

}
/* 异步得到数据后加载dataSource */
function loadCompleteData(evt)
{
  // alert("000");
   if(http_request.readyState == null){

http_request = new XMLHttpRequest();
alert("http_request.readyState 为空 !");
}
if(http_request.readyState==4)//判断对象状态
{
   //alert("111");
if(http_request.status==200)//信息已成功返回,开始处理信息
{
dataSource = window.eval(http_request.responseText);
autoComplete.setDataSource(dataSource);
showAutocomplete(evt); http_request=null;
}else//页面不正常
{
alert("您所请求的页面不正常!");
return;
}
}
}
function showAutocomplete(evt)
{
autoComplete.hdleEvent(evt);
        window.setTimeout(function () {autoComplete.closeAnimateImage();},1000);
    }
/* callback 回调函数 */
      function callbackHdle(autocompleteValue, autocompleteContent) {
        window.setTimeout(function() {
             
  document.getElementById('magazineAuto').value = autocompleteValue;
  //alert(autocompleteValue);
// alert(autocompleteContent);
  document.getElementById("level").value = autocompleteContent;
     
          },1000);
      }

    //]]>




实现看附件


分享到:
评论

相关推荐

    js做的地图

    【标题】"js做的地图" 指的是使用JavaScript编程语言来实现的地图功能。JavaScript是一种广泛应用于网页开发的脚本语言,它允许开发者在浏览器端动态处理数据和更新页面内容,包括创建交互式地图。 【描述】"线性图...

    googleChart--geoChart

    页面不用加载google服务器上的js文件,直接放在本地使用,加快加载速度

    google html5介绍

    通过这种方式,Google能够确定哪些本地应用程序还没有Web等效物,从而为未来的开发指明方向。 #### 三、实施与标准化 在技术层面,Google已经在Google Gears中进行了原型设计,并将其逐步融入Google Chrome浏览器...

    Google_JavaScript_编码规范指南.pdf

    Google JavaScript 编码规范指南是为了解决JavaScript编程中的一致性和规范性问题,它为Google的开源工程及其他项目中使用JavaScript的开发者提供了一系列的编码标准。这份指南详细地介绍了如何在JavaScript编程中应...

    protobuf-js-3.17.0

    your_file.proto`命令,可以将.proto文件编译成JavaScript代码,供protobuf-js库使用。 在实际应用中,protobuf-js-3.17.0可以广泛应用于前后端通信、游戏开发、物联网设备通信等领域,特别是在需要高效、紧凑数据...

    Google Map API获取地理位置信息

    在IT领域,Google Map API是开发人员常用的工具之一,它允许我们通过JavaScript编程语言与Google Maps服务进行交互,获取和处理地理位置信息。本篇文章将详细探讨如何利用Google Map API来获取地点的经纬度坐标以及...

    js-colormaps:Matplotlib颜色图可在JavaScript中使用

    我刚开始是因为我需要另一个项目中的JS色图,而Google并没有吐出任何好的结果,所以我决定自己动手做,并将其提供给公众:) 什么是色彩图? 好吧,如果您找到了这个存储库,我想您已经知道什么是色图,但是无论如何...

    CefSharp 做成页签形式

    标题 "CefSharp 做成页签形式" 指的是使用 CefSharp 库在.NET 应用程序中实现一个具备多标签页功能的Web浏览器。CefSharp 是一个开源项目,它封装了Chromium Embedded Framework (CEF),允许开发者在Windows、Linux...

    go + tauri + vue.js 做的一款通信软件源码.zip

    在这款名为"Go + Tauri + Vue.js 做的一款通信软件源码"的项目中,我们可以看到三个主要技术的结合:Go语言、Tauri框架和Vue.js前端库。这三个技术的融合构建了一个高效的桌面通信应用。下面将详细阐述每个部分的...

    js代码精简

    JavaScript代码精简,通常指的是对JS(JavaScript)和JAVASCRIPT编程语言的源代码进行优化,以减小文件大小,提高网页加载速度,降低服务器带宽消耗的过程。这一过程通常涉及两个主要方面:代码压缩和代码混淆。在...

    使用 MATLAB Coder 生成 JavaScript:使用 MATLAB Coder 从 MATLAB 项目创建 JavaScript/WebAssembly 应用程序和库。-matlab开发

    结合使用 MATLAB Coder Add-On 和 Emscripten 编译器生成 JavaScript,可将您的 MATLAB 函数转换为高性能的客户端 JavaScript/WebAssembly 应用程序和库。 生成的代码可以在任何现代浏览器中编译、嵌入和运行; 包括...

    PHP+Resumable.js分片上传

    Resumable.js是一个JavaScript库,专门用于实现分片上传,它支持断点续传,兼容多种浏览器,为前端提供了友好且灵活的API。 在后端,我们使用PHP作为服务器端语言来处理分片上传。PHP需要实现的功能包括: 1. 接收...

    Google V8 引擎文档

    - **工作原理**:V8 在运行时会将 JavaScript 代码编译成机器码并执行,同时具备垃圾回收机制来自动管理内存。这种即时编译技术是 V8 高性能的关键所在。 ##### 2.2 从 HelloWorld 开始 - **示例**:最简单的示例...

    js设置时间延时url跳转.zip

    JavaScript作为网页交互的核心语言,提供了多种方式来控制网页的行为,其中之一就是控制时间事件。 在JavaScript中,`setTimeout()`函数允许我们在指定的毫秒数后调用一个函数或执行某段代码。它的基本语法是`...

    基于Node.js的网上书店设计与实现.pdf

    Node.js 是一个基于 Google 的 V8 引擎的事件驱动 I/O 的服务端 JavaScript 环境,V8 引擎执行 JavaScript 的性能非常好,速度相当快。非阻塞 I/O 模型具有轻量、高效的特点,Node.js 十分适用于搭建响应速度快、...

    google web toolkit developer plugin for firefox20.0

    GWT(Google Web Toolkit)是Google推出的一个开源Java SDK,它允许开发者使用Java语言来编写前端Web应用,然后自动编译成优化过的JavaScript代码。这样做的好处是利用了Java的强类型、丰富的库和成熟的开发工具,...

    nwjs-v0.48.3-win-x64

    nw.js是基于Google的Chromium浏览器内核和Node.js环境构建的,它结合了浏览器的渲染引擎和Node.js的服务器端功能,使得开发者能够利用Web前端的开发习惯和技能来开发桌面应用。版本号v0.48.3意味着这是nw.js的一个...

Global site tag (gtag.js) - Google Analytics