问题描述
- SpringMVC+hibernate4+Extjs4.2+mysql
-
- 后台处理数据库数据(读取数据)
@RequestMapping("/getmanagers")
@ResponseBody
public Map getWorkOrders(String page,String limit,String start,String all){
int pageInt = Integer.parseInt(page);
int limitInt = Integer.parseInt(limit);
int startInt = Integer.parseInt(start);
Map map = new HashMap();
List list = workOrdersService.getWorkOrders();
List listTemp ;
//数据库中的结果条数小于分页限制,则直接返回结果
map.put("total",list.size());
if(list.size()<=limitInt){
map.put("workOrders", list);
return map;
}
if(all!=null){
map.put("workOrders", list);
return map;
}
//截取List
if(pageInt*limitInt>=list.size()){
listTemp = list.subList(startInt, list.size());
}else{
listTemp = list.subList(startInt, pageInt*limitInt);
}
map.put("workOrders", listTemp);
return map;
}
- ExtMVC
中的model
Ext.define('tw.model.GlobalStatisticsModel',{
extend : 'Ext.data.Model',
fields: [
{name: 'id', type: 'int',sortType :'aesc'},
{name: 'failuretime',type: 'date'},
{name: 'failureaddress', type: 'string'},
{name: 'repairtime', type: 'string'},
{name: 'maintenanceman', type: 'string'},
{name: 'completion', type: 'string'},
{name: 'failurecontent', type: 'string'}
]
});
中的store
Ext.define('tw.store.GlobalStatisticsStore',{
extend:'Ext.data.Store',
model:'tw.model.GlobalStatisticsModel',
pageSize: 17,
proxy:{
type:'ajax',
url: 'gdgl/getmanagers',
reader: {
type: 'json',
root: 'workOrders'
},
writer:{
type: 'json'
}
},
autoLoad: true
});
然后是Ext的View
Ext.define('tw.view.gdgl.GlobalStatisticsView',{
extend : 'Ext.grid.Panel',
xtype : 'globalStatisticsView',
store:'GlobalStatisticsStore',
selType : 'checkboxmodel',
forceFit:false,
columns: [{
text: 'ID',
dataIndex: 'id',
width:50,
editor: {
readOnly:true
}
}, {
// text: '故障时间',
header:'故障时间',
dataIndex: 'failuretime',
width:180,
renderer : Ext.util.Format.dateRenderer('Y-m-d H:i:s'),
editor: {
allowBlank: false
}
}, {
text: '故障地点',
dataIndex: 'failureaddress',
width:200,
editor: {
allowBlank: false
} - 后台处理数据库数据(读取数据)
解决方案
这个我有答案了,java取出来的字符串是一个13位的时间戳,放到Extjs里的话必须要转换为时间才能显示,要不就会显示为13位的时间戳。Ext的view可以改为
Ext.define('tw.view.gdgl.GlobalStatisticsView',{
extend : 'Ext.grid.Panel',
xtype : 'globalStatisticsView',
store:'GlobalStatisticsStore',
selType : 'checkboxmodel',
forceFit:false,
columns: [{
text: 'ID',
dataIndex: 'id',
width:50,
editor: {
readOnly:true
}
}, {
// text: '故障时间',
header:'故障时间',
dataIndex: 'failuretime',
width:180,
renderer:function(value){
return new Date(parseInt(value)).toLocaleString();//自动转化为时间
}
}, {
text: '故障地点',
dataIndex: 'failureaddress',
width:200,
editor: {
allowBlank: false
}
解决方案二:
数据的类型弄错了,在数据库中有datetime类型的,但在数据传输的过程中datetime类型会自动转换,所以你在extjs中你仍然用datetime类型接收就不对了
解决方案三:
这个能解决你的问题:http://ssyangtian.iteye.com/blog/2100794