Java 使用Dojo数据网格在JSP页面上显示数据
我已经编写了这个返回Json字符串的代码,它包含一组值(名称)。现在,我想使用Dojo数据网格在jsp页面上显示这些值。我不知道如何使用这个返回的Json字符串作为Dojo网格的数据。以及如何格式化表结构。另外,我希望当我单击表中的某一行时(在本例中,根据我的查询,该行只包含一列-员工姓名),会打开一个新窗口(可能是一个新的JSP页面)。怎么做?请帮我查一下密码。谢谢 PopulateTextbox.javaJava 使用Dojo数据网格在JSP页面上显示数据,java,json,jsp,datagrid,dojo,Java,Json,Jsp,Datagrid,Dojo,我已经编写了这个返回Json字符串的代码,它包含一组值(名称)。现在,我想使用Dojo数据网格在jsp页面上显示这些值。我不知道如何使用这个返回的Json字符串作为Dojo网格的数据。以及如何格式化表结构。另外,我希望当我单击表中的某一行时(在本例中,根据我的查询,该行只包含一列-员工姓名),会打开一个新窗口(可能是一个新的JSP页面)。怎么做?请帮我查一下密码。谢谢 PopulateTextbox.java package MyPackage; import java.sql.Connect
package MyPackage;
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;
import com.google.gson.Gson;
public class PopulateTextbox {
Gson gson = new Gson();
String temp;
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()]);
temp = gson.toJson(contactListNames);
}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 temp;
}
}
package-MyPackage;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
导入java.util.ArrayList;
导入java.util.List;
导入com.google.gson.gson;
公共类PopulateTextbox{
Gson Gson=新的Gson();
字符串温度;
List rowValues=new ArrayList();
字符串[]contactListNames;
连接con=null;
语句st=null;
结果集rs=null;
公共字符串方法(){
试一试{
String driver=“sun.jdbc.odbc.JdbcOdbcDriver”;
Class.forName(驱动程序);
String db=“jdbc:odbc:Practice\u数据库”;
con=DriverManager.getConnection(db,“,”);
st=con.createStatement();
String sql=“从EmployeeSearch中选择Emp_名称”;
rs=st.executeQuery(sql);
while(rs.next()){
添加(rs.getString(“Emp_Name”);
}
contactListNames=(字符串[])rowValues.toArray(新字符串[rowValues.size());
temp=gson.toJson(contactListNames);
}catch(异常e){System.out.println(e);}
/*最后{
试一试{
如果(con!=null)con.close();
}捕获(SQLE异常){
e、 printStackTrace();
}
试一试{
如果(rs!=null)rs.close();
}捕获(SQLE异常){
e、 printStackTrace();
}试一试{
如果(st!=null)st.close();
}捕获(SQLE异常){
e、 printStackTrace();
}
}*/
返回温度;
}
}
dojox.grid.DataGrid使用数据存储作为其源。dojo.data.ItemFileReadStore可以接受作为数据的json对象
var grid = ...
var store = new dojo.data.ItemFileReadStore({
data: YOUR_JSON_HERE
});
grid.setStore(store);
存储用来初始化自身的json如下所示
{
identifier: 'id',
items: [
{ id: 0, name: 'x' },
{ id: 1, name: 'y' }
]
}
因此,您需要修改java代码以生成特定的json格式。还请注意,每个商品都有一个id,该id在商店中的所有商品中都必须是唯一的
DataGrid具有onRowClick和onRowDblClick事件,用户选择它时,您可以将它们绑定到其中以执行所需的操作