gpt4 book ai didi

java - 来自文本源的 jQuery-ui-autocomplete

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:13 24 4
gpt4 key购买 nike

我尝试使用autocomplete jquery-ui 脚本,但是从文档中解释远程源必须返回一个json 数据,它不是在谈论纯文本响应,我在 jsp/servlet 中开发我的应用程序,但我不知道如何创建 json 数据。

所以我发现了另一个 jquery 自动完成插件 --> autocomplete feature with java

本教程和脚本效果很好,但脚本没有我需要的选项。我尝试保持相同的 getdata.jsp 和 servlet 页面以适应 jquery-ui-autocomplete 只是改变脚本的链接,firebug 告诉我对请求,但未显示!

ScreenShot of firebug

JavaScript 调用:

<script>
$(function() {

$( "#responsable" ).autocomplete({
source: "getdata.jsp",
minLength: 2
});
});
</script>

这是 getdata.jsp 文件:

<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="fr.myldap.model.*"%>
<%
PersonneDB db = new PersonneDB();
String query = request.getParameter("term");

List<Personne> personnes = db.getData(query);

Iterator<Personne> iterator = personnes.iterator();

while(iterator.hasNext()) {
String personne = (String)iterator.next().getNomComplet();
out.println(personne);
}

%>

这是返回人员列表的 PersonneDB 类

package fr.myldap.model;
import java.util.ArrayList;
import java.util.List;

public class PersonneDB {
private LDAPInterneDao piDao;
private LDAPExterneDao peDao;

public PersonneDB() {
ContextVar var= new ContextVar();
piDao = var.getPiDao();
peDao = var.getPeDao();
}

public List<Personne> getData(String query) {
List<Personne> matched = new ArrayList<Personne>(piDao.findByName(query));
matched.addAll(peDao.findByName(query));

return matched;
}
}

我希望有人能帮助我

最佳答案

首先从 this 位置下载 java 的 json 库。

现在要返回您需要遵循其自身格式的 JSON 数据,例如:

{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 732-1234",
"646 123-4567"
]
}

正如你在上面看到的,json数据可以有键值对,对象可以存储在{}中,数组可以存储在[]中等等.

现在要将您的响应转换为 JSON 对象,您需要在 jsp 文件中导入以下语句:

import net.sf.json.JSONObject; 

(它可能会根据您正在下载的库而改变,您可以浏览 javadoc 以获取更多详细信息)

现在看下面的代码,创建一个 json 对象并返回它:

    JSONObject object=new JSONObject();
object.put("name","Amit Kumar");
object.put("employeeList",employeeList);
....
....
System.out.println("json object = "+object);
return object;

它会自动将键值对转换为正确的 JSON 对象...

更新:

所需的库:

commons-lang 2.3
commons-beanutils 1.7.0
commons-collections 3.2
commons-logging 1.1
ezmorph 1.0.4.jar
json-lib-2.2.2-jdk15.jar

您可以从 here 下载所有内容:

要将 arraylist 转换为 json,请使用以下示例代码:

List mybeanList = new ArrayList();
mybeanList.add(myBean1);
mybeanList.add(myBean2);

JSONArray jsonArray = JSONArray.fromObject(mybeanList);
System.out.println("==== : "+jsonArray);

Map map = new HashMap();
map.put("beanlist", jsonArray);

JSONObject jsonObject = JSONObject.fromObject(map);
return jsonObject;

关于java - 来自文本源的 jQuery-ui-autocomplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com