JFinal——Jquery

Stella981
• 阅读 698

        最近在使用神奇的Jfinal框架写项目的时候想用类似搜索框自动完成的效果,经过一番搜索后发现jquery的autocomplete比较不错,前台数据的处理基本都封装好了,可谓万事俱备只欠数据了。准备好所需的文件和写好后台的数据库查询之后发现一个很严重的问题,返回什么数据?返回什么类型的数据?数据的格式是什么样子?

        看了官方demo的例子之后发现他的数据类型是

var cities=["山东","山西","广州","广东"];

的格式,心想也模拟出来个这样的数据试试,结果方法是调用了,但是神马都木有显示,心想肯定是数据的格式,没办法只好查看源码来找答案了。

        经过查看jquery.autocomplete.js,发现了一个function——parse(data),看到里面的

var rows = data.split("\n");
row = row.split("|");

两句话之后我笑了,很明显是拆分原始数据用的,反向推出这数据必然是 "aa" \n| "ab" \n|或者" aa\n| ab\n|或者aa|\nab|\n类似的格式,于是手动拼接了起来,

/**
     * 根据前台输入框中的值查询所有匹配的内容,返回到前台,由autocomplete插件自动完成下拉框效果
     */
    public void autoComplete() {
        StringBuffer sql = new StringBuffer(
                "SELECT u.nickname nickname FROM USER u WHERE u.status='1'  ");
        // autoComplete默认传递值的name为"q",从控制台打印得出的结论
        if (StringUtils.isNotEmpty(getPara("q"))) {
            // RegexUtils用来防止sql注入
            sql.append(" and u.nickname like '%"
                    + RegexUtils.StringFilter(getPara("q")) + "%'");
        }
        // 根据昵称查询符合条件的数据
        List<User> userList = User.udao.find(sql.toString());
        if (!userList.isEmpty()) {
            int size = userList.size();
            String str = "";
            int n = 0;
            // 拼接数据
            for (int i = 0; i < size; i++) {
                if (n > 0) {
                    str += "| \n";
                }
                str += userList.get(i).getStr("nickname");
                n++;
            }
            // 以HTML方式返回数据
            renderHtml(str);
        }
    }

之后运行,完美运行。附上效果图。

JFinal——Jquery

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Wesley13 Wesley13
3年前
layim的websocket消息撤回功能实现
我的大概思路就是,前端根据选取的内容获得他的cid,我的cid是js生成的uuid,然后:1、通过websocket广播给对应的人去删除localstorage里的缓存,2、ajax异步请求删除数据库里的数据记录3、如果对方此时也打开了聊天面板就要用jquery找到那条消息然后remove。由于目前发现layim3.6版本并没有给自己
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
MongoDB与MySQL关于写确认的异同
!(https://pic3.zhimg.com/80/v2af9f6637b50b09be60b00a42f3812d5e_1440w.jpg)云妹导读:所谓写确认,是指用户将数据写入数据库之后,数据库告知用户写入成功的一个概念。根据数据库的特点和配置,可以在不同的写入程度上,返回给用户,而这其中,就涉及到了不同的性能、数据
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这