使用 json 将值加载到我的 extjs 网格时出现问题

发布于 2024-10-22 04:00:43 字数 3840 浏览 1 评论 0原文

我正在使用 java struts 通过 json 对象加载来自数据库的值, 但这些值没有填充在我的 extjs 网格中:我不断得到一个空网格。

我在下面包含了我的代码。

home.jsp

此页面上将出现一个按钮。单击后,应该会出现 getvalues.jsp。 在 getvalues.jsp 中,应该存在一个 extgrid,其中包含来自数据库的内容

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="getvalues.do">
            <input type="submit"></input>
        </form>
    </body>
</html>

。下面是我的 Java 代码。我正在使用数据库中的值填充 JSON 对象。

public class Json extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
        ArrayList<Employee> emp=new ArrayList<Employee>();
        Myservice serve=new Myservice();
        emp=serve.getemployeesservice();
        Iterator<Employee> empitr=emp.iterator();
        JSONArray json=new JSONArray();
        JSONObject JSONobj=new JSONObject();
        while(empitr.hasNext()){
            JSONObject jobj=new JSONObject();
            Employee empl=new Employee();
            empl=empitr.next();
            jobj.put("empid",empl.getEmpid());
            jobj.put("empname",empl.getEmpname());
            json.add(jobj);
        }
        JSONobj.put("employee",json);
        System.out.println(JSONobj.toString());
        return mapping.findForward("success");
    }
}

getvalues.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
        <link rel="stylesheet" type="text/css" href="css/ext-all.css"> 
        <script type="text/javascript" src="js/ext-base.js"></script>
        <script type="text/javascript" src="js/ext-all.js"></script>
        <script type="text/javascript">
        Ext.onReady(function() {
            var store=new Ext.data.JsonStore({
                proxy:new Ext.data.HttpProxy({
                    url:'http://localhost:8080/JsonExample/getvalues.do'
                }),
                reader:new Ext.data.JsonReader({
                    root:'employee',
                    fields:['empid','empname']
                })
            });

            store.load();
            var recs=store.getRange();
            alert(recs.length);

            var grid = new Ext.grid.GridPanel({
                title:'employee information',
                columns: [{
                   header:"employeeid",
                   width:100,
                   dataIndex:'empid',
                   sortable:true
                },{ 
                    header:"employeename",
                    width:100,
                    dataIndex:'empname',
                    sortable:true
                }],
                store: store,
                width:300,
                height:300,
                renderTo:Ext.getBody()
            }); 
        });
        </script>
    </head>
    <body>
        hi
    </body>
</html>

但由于某种原因,这些值没有被填充。请帮我解决这个问题。

提前致谢!

I am loading the values coming from database via a json object using java struts,
but the values are not populating in my extjs grid: I keep getting an empty grid.

I have included my code below.

home.jsp

A button will be there on this page. On clicking the getvalues.jsp should come.
In getvalues.jsp an extgrid should be presen with the content coming from database

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <form action="getvalues.do">
            <input type="submit"></input>
        </form>
    </body>
</html>

Below is my Java code. I am populating a JSON object with the values from my database.

public class Json extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
        ArrayList<Employee> emp=new ArrayList<Employee>();
        Myservice serve=new Myservice();
        emp=serve.getemployeesservice();
        Iterator<Employee> empitr=emp.iterator();
        JSONArray json=new JSONArray();
        JSONObject JSONobj=new JSONObject();
        while(empitr.hasNext()){
            JSONObject jobj=new JSONObject();
            Employee empl=new Employee();
            empl=empitr.next();
            jobj.put("empid",empl.getEmpid());
            jobj.put("empname",empl.getEmpname());
            json.add(jobj);
        }
        JSONobj.put("employee",json);
        System.out.println(JSONobj.toString());
        return mapping.findForward("success");
    }
}

getvalues.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
        <link rel="stylesheet" type="text/css" href="css/ext-all.css"> 
        <script type="text/javascript" src="js/ext-base.js"></script>
        <script type="text/javascript" src="js/ext-all.js"></script>
        <script type="text/javascript">
        Ext.onReady(function() {
            var store=new Ext.data.JsonStore({
                proxy:new Ext.data.HttpProxy({
                    url:'http://localhost:8080/JsonExample/getvalues.do'
                }),
                reader:new Ext.data.JsonReader({
                    root:'employee',
                    fields:['empid','empname']
                })
            });

            store.load();
            var recs=store.getRange();
            alert(recs.length);

            var grid = new Ext.grid.GridPanel({
                title:'employee information',
                columns: [{
                   header:"employeeid",
                   width:100,
                   dataIndex:'empid',
                   sortable:true
                },{ 
                    header:"employeename",
                    width:100,
                    dataIndex:'empname',
                    sortable:true
                }],
                store: store,
                width:300,
                height:300,
                renderTo:Ext.getBody()
            }); 
        });
        </script>
    </head>
    <body>
        hi
    </body>
</html>

But the values are not being populated for some reason. Please help me solve this issue.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦中楼上月下 2024-10-29 04:00:43

我不擅长Java。但是,我怀疑,您的 JSON 列表没有发送到客户端,您只是打印,但不将其包含在响应中。

I'm not good at Java. But, I suspect, your JSON list is not sent to client, you are just printing, but not including it in response.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文