ssh easyui datagrid不显示数据,菜鸟不知道如何解决

ssh easyui datagrid不显示数据,初学者不知道怎么解决
本人在学习easyui,使用datagrid时没有拿到后台数据


下面是action文件 SortPageAction.java

package com.hysd.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.json.simple.JSONObject;

import com.hysd.service.PlanService;
import com.hysd.service.RecordService;
import com.hysd.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class SortPageAction extends ActionSupport {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Resource
private PlanService planService; // 通过Spring 注解 planService CTRL+鼠标点击

private Integer planId;

private Date planStartDate;
private Date planEndDate;
private Date planSubmitDate;
private String planTitle;
private String planContent;
private Integer planState;

private String rows;// 每页显示的记录数
private String page;// 当前第几页

private List list = new ArrayList();
private JSONObject jsonObj = new JSONObject();

// 查询出所有学生信息

public String getAllPlan() throws Exception {

String hql = "FROM Plan";

list = planService.getList(page, rows);
toBeJson(list, planService.count(hql).intValue());

System.out.println("page----" + page);
System.out.println("rows----" + rows);

return SUCCESS;
}

// 转化为Json格式

public void toBeJson(List list, int total) throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();

jsonObj.put("total", total);// total代表一共有多少数据
jsonObj.put("list", list);// row是代表显示的页的数据

response.setCharacterEncoding("utf-8");// 指定为utf-8
response.getWriter().write(jsonObj.toString());// 转化为JSOn格式

System.out.println("jobj.toString()----" + jsonObj.toString());

}

public Integer getPlanId() {
return planId;
}

public void setPlanId(Integer planId) {
this.planId = planId;
}

public String getRows() {
return rows;
}

public void setRows(String rows) {
this.rows = rows;
}

public String getPage() {
return page;
}

public void setPage(String page) {
this.page = page;
}

public Date getPlanStartDate() {
return planStartDate;
}

public void setPlanStartDate(Date planStartDate) {
this.planStartDate = planStartDate;
}

public Date getPlanEndDate() {
return planEndDate;
}

public void setPlanEndDate(Date planEndDate) {
this.planEndDate = planEndDate;
}

public Date getPlanSubmitDate() {
return planSubmitDate;
}

public void setPlanSubmitDate(Date planSubmitDate) {
this.planSubmitDate = planSubmitDate;
}

public String getPlanTitle() {
return planTitle;
}

public void setPlanTitle(String planTitle) {
this.planTitle = planTitle;
}

public String getPlanContent() {
return planContent;
}

public void setPlanContent(String planContent) {
this.planContent = planContent;
}

public Integer getPlanState() {
return planState;
}

public void setPlanState(Integer planState) {
this.planState = planState;
}

}

这个是jsp:  success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>planlist</title>
<link rel="stylesheet" type="text/css" href="themes/icon.css" />
    <link rel="stylesheet" type="text/css" href="themes/default/easyui.css" />
    <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="js/jquery.easyui.min.js"></script>

<script type="text/javascript">

$(function() {
        $('#mydatagrid').datagrid({
            title : 'datagrid实例',
            iconCls : 'icon-ok',
            width : 600,
            method : 'post',
            pageSize : 5,//默认选择的分页是每页5行数据
            pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
            nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
            striped : true,//设置为true将交替显示行背景。
            collapsible : true,//显示可折叠按钮
            toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
            url:'getAllPlan.do',//url调用Action方法
            loadMsg : '数据装载中......',
            singleSelect:true,//为true时只能选择单行
            fitColumns:true,//允许表格自动缩放,以适应父容器
            //sortName : 'xh',//当数据表格初始化时以哪一列来排序
            //sortOrder : 'desc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
            remoteSort : false,
             frozenColumns : [ [ {
                field : 'ck',
                checkbox : true
            } ] ],
            pagination : true,//分页
            rownumbers : true,//行数
            
 
        });
         
    });

</script>

</head>
<body>

<h2>
        <b>easyui的DataGrid实例</b>
    </h2>
 
    <table id="mydatagrid">
      <thead>
            <tr>
                <th data-options="field:'planTitle',width:100,align:'center'">计划标题</th>
                <th data-options="field:'planState',width:100,align:'center'">计划状态</th>
              <!-- 先只试试这两个属性,看看前台显示 -->
            </tr>
        </thead>
    </table>

</body>
</html>

struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

    <package name="json" extends="json-default">
    
     <action name="getAllPlan" class="com.hysd.action.SortPageAction" method="getAllPlan">
    
     <result name="success" type="json" />

     </action>
    
    </package>

</struts>

运行页面显示:
ssh easyui datagrid不显示数据,菜鸟不知道如何解决

情况就是后台没有数据显示,但是我的hql语句查到了,麻烦好心的朋友告诉我怎么解决,或者你们有什么源码示例给我
发一份,



------解决思路----------------------
1.你看你的请求 action能接受到没有
2.用浏览器调试 看看请求响应有没有数据
------解决思路----------------------
easyui 就是前台页面请求url给后台,后台返回适合插件的json数据,
建议首先检查 前台页面是否调用了action
       其次 检查action返回的json数据格式是否正确
    最后  检查前台页面是否接收到数据
------解决思路----------------------
返回的数据不管是封装数据的普通对象还是json对象,必须有key值为rows的属性,datagrid会从对象中取key值为rows对应的
value值作为显示数据。
------解决思路----------------------
看看你返回的数据格式对不
------解决思路----------------------
首先你要确保LIST数据进入到了ACTION里面,然后再看看从LIST-->JSON的过程有没有执行,如果这个过程没有执行,也没有错误提示,那9成是使用JSON转换LIB的JAR包引入不全。我不知道你那种方法能不能成,我这种是可以的:
先引用以下JAR包:
commons-beanutils-1.7.0.jar
commons-collections-3.2.1.jar
commons-fileupload-1.3.1.jar
commons-lang-2.6.jar
commons-lang3-3.4.jar
commons-logging-1.1.3.jar
ezmorph-1.0.6.jar
freemarker-2.3.19.jar
json-lib-2.1.jar
json-lib-2.2.2-jdk15.jar
morph-1.1.1.jar
xom-1.2.6.jar
xwork-core-2.3.20.jar
struts2-json-plugin-2.3.4.jar
有可能有些包是多余的,但我是为了确保成功都引用了。如果少包就会语句不执行,但也不报错的情况。
struts.xml中:
<package name="default" namespace="/" extends="json-default">
<action name="studentInfo" class="studentInfo_action" method="getAllStudentInfo">
         <result type="json"> 
          <param name="root">result</param>
                </result>
</package>

ACTION中:
public String getAllStudentInfo() throws Exception
{
List<StudentInfo> Studentlist = studentInfo_services.getAllStudentInfo(rows, pages);
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("total", Studentlist.size());//total键 存放总记录数,必须的 
jsonMap.put("rows", Studentlist);//rows键 存放每页记录 list 
result = JSONObject.fromObject(jsonMap);//格式化result   一定要是JSONObject  
return SUCCESS;
}

ACTION中相关的import(与这一小段代码相关的import贴出来,其他的没贴了):
import java.util.HashMap;
import net.sf.json.JSONObject;
import java.util.Map;


我这样是成功了的。祝你也成功
ssh easyui datagrid不显示数据,菜鸟不知道如何解决