使用jQuery的autocomplete实现数据查询一次,联想自动补全

news2025/1/22 9:21:11

书接上回,上次说到在jsp页面中,通过监听输入框的数值变化,实时查询数据库,得到返回值使用autocomplete属性自动补全,实现一个联想补全辅助操作,链接:使用jquery的autocomplete属性实现联想补全操作-CSDN博客

但是这种方法对数据库压力太大,这次通过改造,实现了页面初始化时将需要补全的全部信息查出放在页面,页面上的补全操作相当于使用本地数据联想补全,大大减轻了数据库压力。

由于是页面初始化时就将返回值放入域中,首先是后台代码:

@RequestMapping(value = "/init")
    public String init(ModelMap map, HttpServletRequest request, HttpServletResponse response) {
        List<AutoCode> autoList = autoService.getCodeList();

        String exchange = JSON.toJSONString(certificateList);
        certificateList = JSON.parseArray(exchange, CertificateCode.class);
        StringBuilder rtnData = new StringBuilder();
        for (AutoCode auto: autoList ){
            rtnData.append(",{'code':'").append(auto.getCode()).append("','name':'").append(auto.getName()).append("'}");
        }
        String rtn = "["+rtnData.toString().substring(1)+"]";
        map.put("autocomplete",rtn);
        return "rtn/autocomplete";

    }

上述代码中掺杂了些个人业务,重点就在于里面那个for循环,核心思路就是,将返回值做成一个json串返回前端,json串格式都是统一的:{’名称’:‘内容’,‘名称’:‘内容’......},我这里做成了每条数据都是代码+内容,业务根据个人来实现即可。

前端代码:

//引用autocomplete的js文件 ,css文件就不做展示了
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.autocomplete.js" charset="U-8"></script>
    <%
        //EL表达式获取后台传回的需要自动补全的内容
        String autocomplete = (String) request.getAttribute("autocomplete");
    %>
    <script type="text/javascript">

//页面自动补全的核心方法
        $(document).ready(function () {
            var autocomplete = <%=autocomplete%>;
            $("#auto").autocomplete(
                autocomplete,
                {
                    //方法属性在上一版文章中有详解
                    minChars: 1,
                    max:10,
                    width: 300,
                    matchContains: true,
                    autoFill: false,
                    //拼装json中的代码与值
                    formatItem:function(item) {
                        return "["+item.code+"]\""+item.name+"\"";
                    },
                    formatMatch: function(row, i, max) {
                        return row.name+ " " + row.code;
                    },
                    formatResult: function(row) {
                        return row.name;
                    }
                }).result(function(event,data,formatted){
                $("#auto").val("");
                if(data!=null && data!=''){
                    $("#auto").val(data.code);
                }
            });
        });

前端的实现实际上就是一个纯页面操作,后台返回前端的数据可以看做是页面写死的数据,这个autocomplete方法直接拿来使用,例如:

 String autocomplete = (String) request.getAttribute("autocomplete");


将上述代码替换为写死的串:
var autocomplete = [{'zsdm':'01','zsmc':'一元二次方程'},{'zsdm':'012','zsmc':'99A坦克'},{'zsdm':'123','zsmc':'hellword'}];

最终实现效果为:

此时便完成了对初始的,监听输入框内容改变实时查询数据库实现自动补全的改造。后台拿到全部的补全信息放到前端,剩余操作便由前端autocomplete属性自动完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1529394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis数据结构对象中的类型检查与命令多态、内存回收

类型检查与命令多态 概述 redis中用于操作键的命令基本上可以分为两种类型。其中一种命令可以对任何类型的键执行&#xff0c;比如说DEL命令、EXPIRE命令、RENAME命令、TYPE命令、OBJECT命令等. 而另一种命令只能对特定类型的键执行&#xff0c;比如说 1.SET、GET、APPEND、…

Vector Magic:矢量图像转换神器,轻松驾驭Mac与Win双平台

在数字化时代&#xff0c;图像已经成为我们生活和工作中不可或缺的一部分。无论是设计师、艺术家&#xff0c;还是普通用户&#xff0c;都对图像质量有着极高的要求。而矢量图像&#xff0c;以其清晰度高、可无限放大的特点&#xff0c;逐渐受到广大用户的青睐。今天&#xff0…

打破沟通壁垒:跨部门需求冲击与IT部门的应对智慧

引言 在快节奏、高要求的互联网行业&#xff0c;跨部门间的有效沟通是确保项目顺利进行和公司业务稳定发展的基石。然而&#xff0c;需求突袭往往成为打乱这一稳定局面的重要因素。 事件的背景 作为一IT部门负责人&#xff0c;在跨部门的领导层沟通会议上&#xff0c;一个在事…

深度解析深度学习中的长短期记忆网络(LSTM)(含代码实现)

在深度学习中&#xff0c;长短期记忆网络&#xff08;LSTM&#xff09;是一种强大的循环神经网络结构&#xff0c;能够更好地处理长序列数据并减轻梯度消失的问题。本文将介绍LSTM的工作原理&#xff0c;并使用PyTorch实现一个简单的LSTM模型来展示其在自然语言处理中的应用。 …

使用 wxWidgets 的 wxAUI 界面库,创建功能丰富的软件界面

目录 前言&#xff1a; wxAUI 的优势&#xff1a; 使用 wxAUI 创建软件界面的步骤&#xff1a; 以下是一些使用 wxAUI 创建软件界面的技巧&#xff1a; 案例&#xff1a; 总结&#xff1a; 前言&#xff1a; 软件界面是用户与软件交互的重要桥梁&#xff0c;一个好的界面…

应用测评要求解读-三级

身份鉴别&#xff1a; a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b; 1. 在未登录状态下尝试直接访问任意操作页面或功能&#xff0c;查看是否具有登陆界面。 2&#xff0e;询问或者测试…

《你就是孩子最好的玩具·升级版》笔记(四)给父母的话

经典摘录 两岁到三岁之间是最具有挑战性的一段时期。在这个阶段&#xff0c;你的工作最多&#xff0c;责任也最大&#xff0c;因为你将极大地影响并决定孩子的情感发育。“当妈妈本来就不容易&#xff0c;你并不需要时时刻刻都开心&#xff0c;这很正常。” 【●反省自己生气的…

Vue技能树总结01

Vue vs React 相似之处: 它们都有使用 Virtual DOM&#xff1b;提供了响应式&#xff08;Reactive&#xff09;和组件化&#xff08;Composable&#xff09;的视图组件。将注意力集中保持在核心库&#xff0c;而将其他功能如路由和全局状态管理交给相关的库。React 比 Vue 有更…

MySQL数据自动同步到Es

Logstash 测试数据准备 DROP DATABASE IF EXISTS es;CREATE DATABASE es DEFAULT CHARACTER SET utf8;USE es;CREATE TABLE book (id INT NOT NULL,title VARCHAR(20),author VARCHAR(20),price DECIMAL(6,2),PRIMARY KEY(id) );DROP PROCEDURE IF EXISTS batchInsertBook;DELI…

极大似然估计和最大参数后验估计

概率是已知模型和参数&#xff0c;推数据&#xff1b;统计&#xff08;似然&#xff09;是已知数据&#xff0c;推模型和参数。对于函数 x表示某一个具体的数据&#xff1b;θ表示模型的参数。 如果θ是已知确定的&#xff0c;x 是变量&#xff0c;这个函数叫做概率函数(prob…

全国人口密度分布数据

数据福利是专门为关注小编博客及公众号的朋友定制的&#xff0c;未关注用户不享受免费共享服务&#xff0c;已经被列入黑名单的用户和单位不享受免费共享服务。参与本号发起的数据众筹&#xff0c;向本号捐赠过硬盘以及多次转发、评论的朋友优先享有免费共享服务。 对人口数量、…

网络架构层_交换机连接使用

网络架构层_交换机连接使用 交换机是不是不会用呀&#xff1f;交换机&#xff0c;服务器&#xff0c;路由器&#xff0c;防火墙&#xff0c;网关&#xff0c;这些都是嘛呀&#xff1f; 网上的一些网络架构图&#xff0c;具体项目按照实际考虑。 交换机的Console口——通过Con…

递增三元组C++

题目 输入样例&#xff1a; 3 1 1 1 2 2 2 3 3 3输出样例&#xff1a; 27 思路1 题目让我们求所有满足Ai < Bi < Ci的三元组组合&#xff0c;我们可以先将A, B, C三个数组按升序排序&#xff0c;设计分别指向A数组和C数组的指针ia、ic&#xff0c;一开始指向数组的第一…

数据结构与算法1-大O表示法

大O指Big Operation&#xff0c;可以用来表示时间复杂度和空间复杂度 常见大 O O O 表示法 按时间复杂度从低到高 黑色横线 O ( 1 ) O(1) O(1)&#xff0c;常量时间&#xff0c;意味着算法时间并不随数据规模而变化绿色 O ( l o g ( n ) ) O(log(n)) O(log(n))&#xff0c;…

算法打卡day17|二叉树篇06|Leetcode 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

算法题 Leetcode 654.最大二叉树 题目链接:654.最大二叉树 大佬视频讲解&#xff1a;最大二叉树视频讲解 个人思路 大概思路就是在数组中 找最大值的节点作为当前节点&#xff0c;用最大值的index切割左右子树的区间&#xff0c;往复循环到数组元素为0&#xff1b; 解法 递…

【Linux】详谈进程优先级进程调度与切换

一、进程优先级 1.1、为什么要有优先级 进程要访问某种资源&#xff0c;进程通过一定的方式排队&#xff0c;确认享受资源的优先顺序。计算机中资源过少&#xff0c;所以进程访问某种资源时需要排队。 1.2、优先级的具体表示 进程的优先级其实就是PCB中的一个整形变量…

工具精灵--超级好用的在线工具网站

工具精灵是一个超级好用的在线工具网站&#xff0c;它有这些功能&#xff1a;json格式化、xml格式化、markdown在线编辑、sql格式化、json转Java、xml转Java等。 虽然有很多这种类似的网站了&#xff0c;但它们并不好用&#xff0c;很粗糙。工具精灵超级好用&#xff0c;细节方…

性能测试 —— 认识 jmeter (性能测试流程 性能测试通过标准)

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 1 性能测试技能树 性能测试是一项综合性的工作&#xff0c;致力于暴露性能问题&#xff0c;评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户来验证系统能够…

windows取证

Windows事件日志分析 使用Windows事件日志查看器&#xff0c;打开实验文档“security01.evtx”。按“日期和时间”对日志进行分组统计&#xff1b;按“事件ID”对日志进行分组统计&#xff1a; 问题&#xff1a;日志中是否有用户登录失败的记录。如果有&#xff0c;请按“登录…

openEuler 欧拉系统nginx正向代理 http https —— 筑梦之路

正向代理 Nginx正向代理&#xff0c;通过服务器代理客户端去重定向请求访问到目标服务器的一种代理服务。对于目标服务器来说浏览器/客户端是隐藏的。Nginx 正向代理默认只支持http 协议&#xff0c;不支持 https 协议&#xff0c;需借助"ngx_http_proxy_connect_module&q…