sachintaware
6 Dec 2011, 1:21 AM
Hello
I am struggling a bit with displaying database values in a grid using java.This is the servlet which fetches the values from database and stores them in a Json array.
JSONArray jArray = new JSONArray();
while(rs1.next())
{
Integer id = rs1.getInt(1);
String uname = rs1.getString(2);
String fname = rs1.getString(4);
String lname = rs1.getString(5);
String emailid = rs1.getString(6);
String statename = rs1.getString(7);
String cityname = rs1.getString(8);
String countryname = rs1.getString(9);
JSONObject jobj = new JSONObject();
// jobj.put("id",id);
jobj.put("uname",uname);
jobj.put("fname",fname);
jobj.put("lname",lname);
jobj.put("emailid",emailid);
jobj.put("statename",statename);
jobj.put("cityname",cityname);
jobj.put("countryname",countryname);
jArray.add(jobj);
}
//pw.println(jArray);
JSONObject jObjDevice = new JSONObject();
jObjDevice.put("device", jArray);
JSONObject jObjDeviceList = new JSONObject();
jObjDeviceList.put("devicelist", jObjDevice );
pw.println(jObjDevice.toString());
This is the json array that is created with the records from database.
{"device":[{"id":1,"uname":"Sachin","fname":"Sachin","lname":"Taware","emailid":"sachi@gmail.com","statename":"MH","cityname":"Pune","countryname":"India"},{"id":2,"uname":"Rahul","fname":"Rahul","lname":"Dravid","emailid":"rdravid@gmail.com","statename":"KA","cityname":"Bangalore","countryname":"India"},{"id":3,"uname":"MS","fname":"MS","lname":"Dhoni","emailid":"ms@gmail.com","statename":"JH","cityname":"Ranchi","countryname":"India"},{"id":4,"uname":"viru","fname":"Virender","lname":"Sehwag","emailid":"viru123@gmail.com","statename":"DL","cityname":"Delhi","countryname":"India"}]
I have my script in an Html file.
But,now how can I pass the array to the store?
The problem I think is in the proxy and reader section(I have highlighted it).Can I pass the URL of the class file of the compiled servlet ??If not how to pass the json to the store?
Firebug shows me the same error of invalid json.
<script type="text/javascript">
Ext.onReady(function() {
Ext.define('Company', {
extend: 'Ext.data.Model',
fields: [
{name:'uname',type: 'string'},
{name:'fname',type: 'string'},
{name:'lname',type: 'string'},
{name:'emailid',type: 'string'},
{name:'statename',type: 'string'},
{name:'cityname',type: 'string'},
{name:'country',type: 'string'}]
});
var store_company = new Ext.data.Store({
model: 'Company',
proxy: {
type: 'ajax',
url: 'register.class', //Not sure if this is correct url:'register.class'"!!
reader: {
type: 'json',
root:'device'
},
}
});
var grid_company = Ext.create('Ext.grid.Panel', {
store: store_company,
columns:[
{
text : 'User Name',
width : 120,
sortable : true,
dataIndex: 'uname'
},
{
text : 'Firstname',
width : 120,
sortable : true,
dataIndex: 'fname'
},
{
text : 'Lastname',
width : 110,
sortable : true,
dataIndex: 'lname'
},
{
text : 'Email',
width : 150,
sortable : true,
dataIndex: 'emailid'
},
{
text : 'State',
width : 100,
sortable : true,
dataIndex: 'statename'
},
{
text : 'City',
width : 150,
sortable : true,
dataIndex: 'cityname'
},
{
text : 'Country',
width : 150,
sortable : true,
dataIndex: 'countryname'
}
],
bbar: Ext.create('Ext.PagingToolbar', {
store: store_company,
displayInfo: true,
displayMsg: 'Displaying topics {0} - {1} of {2}',
emptyMsg: "No topics to display"
}),
height: 210,
width: 902,
title: 'Company List',
renderTo: 'grid-company',
viewConfig: {
stripeRows: true
}
});
store_company.load();
});
</script>
Sach
www.optionsconsultancy.com
I am struggling a bit with displaying database values in a grid using java.This is the servlet which fetches the values from database and stores them in a Json array.
JSONArray jArray = new JSONArray();
while(rs1.next())
{
Integer id = rs1.getInt(1);
String uname = rs1.getString(2);
String fname = rs1.getString(4);
String lname = rs1.getString(5);
String emailid = rs1.getString(6);
String statename = rs1.getString(7);
String cityname = rs1.getString(8);
String countryname = rs1.getString(9);
JSONObject jobj = new JSONObject();
// jobj.put("id",id);
jobj.put("uname",uname);
jobj.put("fname",fname);
jobj.put("lname",lname);
jobj.put("emailid",emailid);
jobj.put("statename",statename);
jobj.put("cityname",cityname);
jobj.put("countryname",countryname);
jArray.add(jobj);
}
//pw.println(jArray);
JSONObject jObjDevice = new JSONObject();
jObjDevice.put("device", jArray);
JSONObject jObjDeviceList = new JSONObject();
jObjDeviceList.put("devicelist", jObjDevice );
pw.println(jObjDevice.toString());
This is the json array that is created with the records from database.
{"device":[{"id":1,"uname":"Sachin","fname":"Sachin","lname":"Taware","emailid":"sachi@gmail.com","statename":"MH","cityname":"Pune","countryname":"India"},{"id":2,"uname":"Rahul","fname":"Rahul","lname":"Dravid","emailid":"rdravid@gmail.com","statename":"KA","cityname":"Bangalore","countryname":"India"},{"id":3,"uname":"MS","fname":"MS","lname":"Dhoni","emailid":"ms@gmail.com","statename":"JH","cityname":"Ranchi","countryname":"India"},{"id":4,"uname":"viru","fname":"Virender","lname":"Sehwag","emailid":"viru123@gmail.com","statename":"DL","cityname":"Delhi","countryname":"India"}]
I have my script in an Html file.
But,now how can I pass the array to the store?
The problem I think is in the proxy and reader section(I have highlighted it).Can I pass the URL of the class file of the compiled servlet ??If not how to pass the json to the store?
Firebug shows me the same error of invalid json.
<script type="text/javascript">
Ext.onReady(function() {
Ext.define('Company', {
extend: 'Ext.data.Model',
fields: [
{name:'uname',type: 'string'},
{name:'fname',type: 'string'},
{name:'lname',type: 'string'},
{name:'emailid',type: 'string'},
{name:'statename',type: 'string'},
{name:'cityname',type: 'string'},
{name:'country',type: 'string'}]
});
var store_company = new Ext.data.Store({
model: 'Company',
proxy: {
type: 'ajax',
url: 'register.class', //Not sure if this is correct url:'register.class'"!!
reader: {
type: 'json',
root:'device'
},
}
});
var grid_company = Ext.create('Ext.grid.Panel', {
store: store_company,
columns:[
{
text : 'User Name',
width : 120,
sortable : true,
dataIndex: 'uname'
},
{
text : 'Firstname',
width : 120,
sortable : true,
dataIndex: 'fname'
},
{
text : 'Lastname',
width : 110,
sortable : true,
dataIndex: 'lname'
},
{
text : 'Email',
width : 150,
sortable : true,
dataIndex: 'emailid'
},
{
text : 'State',
width : 100,
sortable : true,
dataIndex: 'statename'
},
{
text : 'City',
width : 150,
sortable : true,
dataIndex: 'cityname'
},
{
text : 'Country',
width : 150,
sortable : true,
dataIndex: 'countryname'
}
],
bbar: Ext.create('Ext.PagingToolbar', {
store: store_company,
displayInfo: true,
displayMsg: 'Displaying topics {0} - {1} of {2}',
emptyMsg: "No topics to display"
}),
height: 210,
width: 902,
title: 'Company List',
renderTo: 'grid-company',
viewConfig: {
stripeRows: true
}
});
store_company.load();
});
</script>
Sach
www.optionsconsultancy.com