我一直在努力寻找这个问题很长时间,但无法找到正确的方法。我有这个数据库,我想从中检索一些值,这些值将是我的自动完成数据源。我有我的连接工作,我能够检索我的方法返回的数组中的值。但我无法超越这个。请帮我一个jsp页面,我可以将这个数组作为json数据检索,或者我可以直接检索它并将它作为我的自动完成的源代码放入我的jsp代码中。我可以使用任何框架,无论是Dojo还是J查询。提前致谢。
populatetextbox.java
package classes.web;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class PopulateTextbox {
List <String>rowValues = new ArrayList<String>();
String[] contactListNames;
Connection con=null;
Statement st=null;
ResultSet rs=null;
public String[] method(){
try{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
String db = "jdbc:odbc:Practice_Database";
con = DriverManager.getConnection(db,"","");
st = con.createStatement();
String sql = "SELECT Emp_Name FROM EmployeeSearch";
rs = st.executeQuery(sql);
while(rs.next()){
rowValues.add(rs.getString("Emp_Name"));
}
contactListNames = (String[]) rowValues.toArray(new String[rowValues.size()]);
}catch(Exception e){System.out.println(e);}
/*finally{
try {
if(con!=null)con.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(rs!=null)rs.close();
} catch (SQLException e) {
e.printStackTrace();
}try {
if(st!=null)st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}*/
return contactListNames;
}
}
答案 0 :(得分:0)
由于您提到使用JSP,dojo的一种方法是: 1)在JSP中包含dojo和支持文件(在本节中) 2)在Java代码中,使用诸如GSon之类的库将java数组转换为JSON。 (或者,您甚至可以在准备Java数组时将JSON对象构造为字符串) 3)在JSP中使用dojo combobox或filteringSelect小部件(都支持自动完成): 在HTML主体部分。例如,请参阅: http://livedocs.dojotoolkit.org/dijit/form/FilteringSelect http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/_autoComplete.html?testWidget=dijit.form.FilteringSelect http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/_autoComplete.html?testWidget=dijit.form.ComboBox
我在另一个问题中提供的以下答案可能会帮助您详细了解如何在JSP中包含: Displaying Data on a JSP page using Dojo Data grid
或者,您可以使用纯HTML作为表示层,并使用AJAX获取组合框的数据(例如,通过返回JSON的servlet) 我更喜欢这种方法,因为它使表示层与中间层和后端完全分开
您还可以使用JQuery UI小部件而不是Dojo: http://jqueryui.com/demos/autocomplete/