我是jQuery新手,在jsp中将数据从servlet显示到jqGrid时遇到了困难。我使用google gson将数据从ArrayList转换为字符串变量json。当我运行项目时,它在控制台中显示json数据,并显示一个空网格。
Student.java
package com
public class Student {
private String name;
private String mark;
private String address;
//getter and setters
学生数据服务。JAVA
package com;
import java.util.ArrayList;
import java.util.List;
import com.Student;
public class StudentDataService {
public static List<Student> getStudentList() {
List<Student> listOfStudent = new ArrayList<Student>();
Student aStudent = new Student();
for (int i = 1; i <= 10; i++) {
aStudent = new Student();
aStudent.setName("R" + i);
aStudent.setMark("20" + i);
aStudent.setAddress("pune "+i);
listOfStudent.add(aStudent);
}
return listOfStudent;
}
}
我的servlet代码:
ervlet.java
package com;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.Student;
import com.StudentDataService;
/**
* Servlet implementation class StudentDataServlet
*/
public class StudentDataServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public StudentDataServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
List<Student> lisOfStudent = StudentDataService.getStudentList();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(lisOfStudent);
out.print(json);
System.out.println(json);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
我的JSP页面:
滑溜的网格演示。jsp
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>jqGrid Example</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.2.js'></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jqueryui/1.8.14/jquery-ui.js">
</script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="http://trirand.com/blog/jqgrid/themes/ui.jqgrid.css">
<script type='text/javascript' src="http://trirand.com/blog/jqgrid/js/i18n/grid.locale- en.js"></script>
<script type='text/javascript' src="http://trirand.com/blog/jqgrid/js/jquery.jqGrid.min.js"></script>
<style type='text/css'>
</style>
<script type='text/javascript'>
jQuery(document).ready(function () {
jQuery("#grid").jqGrid({
url: "http://localhost:9080/JquerySlickGrid/StudentDataServlet",
datatype: "json",
jsonReader: {repeatitems: false, id: "ref"},
colNames:['Name','Marks', 'Address'],
colModel:[
{name:'Name',index:'Name', width:100},
{name:'Marks',index:'Marks', width:100},
{name:'Address',index:'Address', width:500}
],
rowNum:20,
rowList:[20,60,100],
height:460,
pager: "#pagingDiv",
viewrecords: true,
caption: "Json Example"
});
});
</script>
</head>
<body>
<table id="grid"></table>
<div id="pagingDiv"></div>
</body>
</html>
将colModel名称和索引更改为与pojo类变量名称相同的名称。
谢谢阿米特·库马尔
起初我也有同样的问题。我解决了将json转换为本地数据的问题,这就是我将json数据填充到jqgrid中的方式。这可能对你有帮助。
function getReport() {
$.ajax({
url : "totalSalesReport.do?method=searchSpendReport"
type : "POST",
async : false,
success : function(data) {
$("#gridtable").jqGrid('GridUnload');
var newdata = jQuery.parseJSON(data);
$('#gridtable').jqGrid({
data : newdata,
datatype : 'local',
colNames : [ 'Name', 'Year', 'Period'],
colModel : [ {
name : 'name',
index : 'name'
}, {
name : 'year',
index : 'year'
}, {
name : 'period',
index : 'period'
}],
rowNum : 10,
rowList : [ 10, 20, 50 ],
pager : '#pager',
shrinkToFit : false,
autowidth : true,
viewrecords : true,
height : 'auto'
}).jqGrid('navGrid', '#pager', {
add : false,
edit : false,
del : false,
search : false,
refresh : false
},
{}, /* edit options */
{}, /* add options */
{}, /* del options */
{});
}});}
如果您需要从jsp页面获取数据的进一步帮助,请告诉我。
更新的Ans:
我使用jsp将列表数据格式化为json数组。下面给出了这段代码。为此,需要添加json对象jar文件。
<%@page import="java.sql.ResultSet"%>
<%@page import="java.util.*,java.util.ArrayList"%>
<%@page import="org.json.simple.JSONObject"%>
<%
net.sf.json.JSONObject responcedata = new net.sf.json.JSONObject();
net.sf.json.JSONArray cellarray = new net.sf.json.JSONArray();
net.sf.json.JSONArray cell = null; //new net.sf.json.JSONArray();
net.sf.json.JSONObject cellobj = null; //new net.sf.json.JSONObject();
List<ReportDto> reportDtos = null;
if (session.getAttribute("agencyReport") != null) {
reportDtos = (List<ReportDto>) session
.getAttribute("agencyReport");
}
ReportDto reportDto = null;
int i = 0;
if (reportDtos != null) {
for (int index = i; index < reportDtos.size(); index++) {
reportDto = reportDtos.get(index);
cellobj = new net.sf.json.JSONObject();
cell = new net.sf.json.JSONArray();
cellobj.put("name", reportDto.getVendorName());
cellobj.put("year", reportDto.getSpendYear());
cellobj.put("period",reportDto.getReportPeriod());
cellarray.put(cellobj);
i++;
}
out.println(cellarray);
}
%>
我有一个索引。带有“刷新”、“转发”和“编辑”按钮的jsp页面。如果我单击刷新按钮,它将调用一个Servlet,并在索引上显示值。jsp页面。 当我点击“forward”按钮时,它调用另一个servlet并转到另一个页面forward\u call\u log。jsp。在这个页面中,当我点击“转发”按钮时,它调用另一个servlet,该servlet显示索引。jsp页面。索引。显示jsp页面,但数
问题内容: 我正在使用jqGrid 3.6.4和jquery 1.4.2。在我的示例中,我正在遵循json数据格式,我想将这些json数据映射到jqgrid的行中 我的jqgrid代码如下 所以现在的问题是因为我的数据(即student_name和year)在“ head”下,因此jqgrid可以找到这两个字段。同时其他两个列值,即“日期”和“数字”位于“ sub”下,即使是那些列,我也无法使用j
问题内容: 我正在尝试使用来自Web服务的数据填充jqGrid。我已经仔细研究了jqGrid代码和文档。我需要另一双眼睛看下面的代码,并告诉我是否缺少某些内容。 正如您将在代码中看到的那样,我将网格设置为在页面加载时或刷新期间加载。加载网格后,我再次调用Ajax以获取JSON数据并显示在网格下方的div中。 我看到了大多数预期的行为。页面加载后,网格显示加载指示器,然后启动Ajax调用,并且JSO
问题内容: 我无法理解jqGrid的JSON数据源中的所有字段意味着什么,而且我在任何地方都没有看到任何文档。 我尝试理解的示例是:http : //www.trirand.com/blog/jqgrid/jqgrid.html,然后是“ JSON数据”下的第一个示例 可以在以下位置访问JSON数据:http : //www.trirand.com/blog/jqgrid/server.php?
问题内容: 我在从Java servlet内的JavaScript检索以JSON形式发送的数据时遇到查询。以下是我在做什么… 这是JavaScript内向Servlet发出请求的代码的一部分 在发出此请求时,我尝试检索从Servlet中的JavaScript发送的参数,但这样做时,我首先对如何从请求中检索数据感到困惑 我在servlet中使用了以下内容: 注意: 我的Servlet中的内容类型设置
问题内容: 我有一个要求,即只能从本地主机访问mysql数据库。我必须实现一个可以访问数据库的servlet,以允许该系统中的其他服务器访问数据(servlet可以充当代理)。但是,此系统由一个远程服务器组成,该服务器下载执行以下语句的大部分数据: 有人可以建议我如何编写一个以有效方式流式传输此类数据的servlet吗(我是数据库新手)? 问题答案: 首先,我不建议为此使用servlet。有关正确