我需要您的帮助,如何使用Java Web技术(JSP,servlet和AJAX)使HTML输入文本元素像“Google的AJAX搜索引擎”输入文本元素一样工作。下拉列表中的数据将分别来自数据库表,例如MySQL或Microsoft SQL数据库。
我在此研究了NetBeans教程,但是使用该教程无法从下拉列表中选择一个值以显示在HTML输入文本元素中。这是link。
感谢。
答案 0 :(得分:3)
@ user2870719您可以尝试以下操作,在您的jsp页面中向servlet / jsp发送ajax请求并在javascript变量中填充响应数据。所以你可以像我上面提到的那样获得jQuery自动完成文本框。
<%@page import="java.sql.*"%>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript">
function showData(value){
$.ajax({
url : "ur_servlet?name="+value,
type : "POST",
async : false,
success : function(data) {
//Do something with the data here
}
});
}
</script>
</head>
<body>
<form name="employee">
<input type="text" name="name" id="name" onkeyup="showData(this.value);"><br>
</table>
</body>
</html>
在servlet中,
String name = request.getParameter("name");
String buffer="";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from data where name like '"+name+"%'");
while(rs.next())
{
buffer=buffer+"'"+rs.getString("name")+"',";
}
response.getWriter().println(buffer);
}
catch (Exception e) {
e.printStackTrace();
}
最后将响应发送到jsp页面。如果这有帮助,请告诉我..
答案 1 :(得分:0)
自动完成 - Java中的Jquery Ajax Json示例(使用Servlet)
这里使用devbridge jquery api来实现自动完成功能。
要求:
Eclipse
Mysql(或者你可以使用任何其他数据库,但在lib文件夹中你必须添加适当的驱动程序
对于该数据库)
获得国家清单
对于Mysql
https://github.com/bharathirasa/demo/blob/master/mysql-country-list-codes.sql
对于Oracle https://github.com/bharathirasa/demo/blob/master/oracle-country-list.sql
HTML代码
<input type="text" name="country" id="autocomplete"
class="form-control" placeholder="Enter Country name" />
Jquery代码
$("#autocomplete").autocomplete({
//lookup: countries,
serviceUrl:'Auto', //tell the script where to send requests
width: 450, //set width
//callback just to show it's working
onSelect: function (suggestion) {
$('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
},
showNoSuggestionNotice: true,
noSuggestionNotice: 'Sorry, no matching results',
});
Servlet代码
String q=request.getParameter("query");
ArrayList<Country> o=CountryDao.getCountryName(q);
Gson gson = new Gson();
// convert java object to JSON format,
// and returned as JSON formatted string
String json = gson.toJson(o);
//System.out.println(json);
response.getWriter().write("{\"suggestions\":"+json+"}");
这里没有提到方法,因此所有数据都将作为GET方法传递。如果你想通过Jquery中提到的数据传递数据,比如类型:'POST'。
嗨,实际上我使用devbridge jquery api
点击链接获取更多信息
http://pdfboxtutorial.blogspot.com/2015/03/autocomplete-jquery-ajax-json-example.html