Extjs解析struts2返回的json数据异常求给指点一下 多谢啦分不多了不好意思)。很急的
Extjs解析struts2返回的json数据错误求大虾给指点一下 谢谢啦。(分不多了,不好意
思)。很急急急的
我用的是struts2.1.8的struts2-json-plugin-2.1.8.1.jar插件 还有
json-lib-2.4-jdk15.jar
java代码就是提供set和get方法
Java code
int count = fieldManageService.getFieldmanageCount(name); List Fieldmanage list = fieldManageService.getFieldmanageList(name, start,
limitNo);
JSONArray array = JSONArray.fromObject(list); System.out.println(array.toString()+ dsds111sdsd ); this.setData(array.toString());
this.setTotalCount(count);
xml配置
XML code
action name= fieldManage_* method= {1} class= fieldManageAction
interceptor-ref name= json /interceptor-ref
result type= json
param name= includeProperties totalCount,data /param
/result
/action
前台的Ext
JScript code
this.vstore = new Ext.data.JsonStore({
url:this.listUrl,
totalProperty : 'totalCount',
root : 'data',
fields:this.fields,
})
this.grid = new Ext.grid.GridPanel({
store:this.vstore,
loadMask: {msg:'正在加载数据,请稍侯„„'},
tbar:[
{
text: 添加 ,
iconCls: addIcon ,
handler:this.addActivity,
scope:this
},
- ,
{
text: 修改 ,
iconCls: editIcon ,
handler:this.editActivity,
scope:this
},
- ,
{
text: 删除 ,
iconCls: deleteIcon ,
handler:this.delActivity,
scope:this
}
],
frame:true,
columns:this.getColumns(),
bbar:this.pagingToolbar
})
前台FF检测到的json是[{ fieldManageDesc : 海都餐厅门口 , fieldManageId :1, fieldManageName : 餐厅门口 , isuse : 1 }]是对的、但是Ext解析的时候应该是一条、但是他把这个串拆分开了、拆成85条了,例如第一条就是一个“[”,第二个就是“{”,一次类推、我很纳闷了。。
------解决
--------------------------------------------------------
仍然用这个配置
action name= fieldManage_* method= doSomeThing class= fieldManageAction
interceptor-ref name= json /interceptor-ref
result type= json
//后边这个配置不要了,默认把类成员全转成json对象
// param name= includeProperties totalCount,data /param
/result
/action
方法名改成了 doSomeThing ,以此为例
//类名不变
public class fieldManageAction
{
//定义类成员,需要有get和set方法。 有get方法的就会自动转换到返回的json对象里
//除非在参数里用 excludeProperties 排除或是在类里用@JSON(serialize=false) 排除
//如果是Spring 自动注入的,一定不要给get方法或是一定要把它排除
private int totalCount; //整型
private Date today; //日期
private String memo; //字符串
private List Fieldmanage list; //对象 也是自动转换
//以上都给 get 和 set 方法
//这是ACTION 方法,方法里只需要对要返回的类成员赋值就行了
public String doSomeThing()
{
//„„„„„„„„调用逻辑层方法处理逻辑
doBusinessThing();
// 赋值
totalCount=10; //赋值这里都随便取值了