java中用jquery AutoComplete 实现自动补全(二)后台JSON实现自动补全

服务器端JSON实现自动补全

    上两篇已经讲了用法和简单实例,这一篇讲到了重点,也是我们关心的与后台数据库交互,从后台获取JSON数据进行搜索,下面直接上代码:

    页面代码如下:

   

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



  
    
    
    jQuery 实现自动补全功能
	 
	
	
	
      
  
  
     
     
  

action 类代码:

package com.twkj.xmrcbgManage.action;

import com.twkj.common.BasicAction;
import com.twkj.xmrcbgManage.service.AutoCompleteService;

public class AutoCompletAction extends BasicAction{
    private AutoCompleteService autoCompleteService;

	public AutoCompleteService getAutoCompleteService() {
		return autoCompleteService;
	}

	public void setAutoCompleteService(AutoCompleteService autoCompleteService) {
		this.autoCompleteService = autoCompleteService;
	}
	
	/**
	 * 获取自动补全功能数据
	 */
	public String getAutoComplteList(){
		try {
			String jsonValue=autoCompleteService.findUserInfo();
			System.out.println(jsonValue);
			response.getWriter().write(jsonValue);
			
		} catch (Exception e) {
			System.err.println("自动补全出错!");
		}
		return null;
	}
	/**
	 * 根据条件查询
	 */
	public String getAutoComplteListByName(){
    	String nickName=request.getParameter("nickName");
	
		try {
			if (nickName!=null&&!"".equals(nickName)) {
				nickName=java.net.URLDecoder.decode(nickName, "utf-8");
			}
			String jsonValue=autoCompleteService.findUserInfoByNickName(nickName);
			System.out.println(jsonValue);
			response.getWriter().write(jsonValue);
			//具体业务代码自己根据需要写
		} catch (Exception e) {
			System.err.println("按条件查询出错!");
		}
		
		return null;
	}
}

service 类代码:

package com.twkj.xmrcbgManage.serviceimpl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jofc2.org.json.JSONArray;

import com.twkj.dao.BaseDao;
import com.twkj.util.JsonTool;
import com.twkj.xmrcbgManage.service.AutoCompleteService;

public class AutoCompleteServiceImpl implements AutoCompleteService{

	private JsonTool jsonTool;
    private BaseDao baseDao;
	public void setJsonTool(JsonTool jsonTool) {
		this.jsonTool = jsonTool;
	}
	
	 public void setBaseDao(BaseDao baseDao) {
		this.baseDao = baseDao;
	}
	//查找所有用户昵称
	 public String findUserInfo()
	 {
		 JSONArray jsonArray=null;
			String sql=" select t.sunickname as nickName from tbsecurity_users t  where 1=1 ";
			List objList=baseDao.querySqlObject(sql);
			if (objList!=null&&objList.size()>0) {
				jsonArray=new JSONArray();
				for (int i = 0; i < objList.size(); i++) {
					Map map=(HashMap) objList.get(i);
					jsonArray.put(map);
				}
			}
		return jsonArray.toString();
	 }
		//查找所有用户昵称
		public String findUserInfoByNickName(String nickName)
		{
			JSONArray jsonArray=null;
				String sql=" select *  from tbsecurity_users t  where 1=1 ";
				if(nickName!=null && !"".equals(nickName))
				{
					sql+=" and t.sunickname like '%"+nickName+"%' ";
				}
				System.out.println(sql);
				List objList=baseDao.querySqlObject(sql);
				if (objList!=null&&objList.size()>0) {
					jsonArray=new JSONArray();
					for (int i = 0; i < objList.size(); i++) {
						Map map=(HashMap) objList.get(i);
						jsonArray.put(map);
					}
				}
			return jsonArray.toString();
		}
}
以上是从后台获取JSON数据到前台展示,希望对大家有用!有什么问题可以随时指出!希望多多提意见! 
  

你可能感兴趣的:(java中用jquery AutoComplete 实现自动补全(二)后台JSON实现自动补全)