Ext从后台获取store无效

网络科技 2011-01-14 05:27:09
刚才接触不久Ext,之前在本地直接设置store,都可以的,现我改成了从后台取,就得不到,
不知道那个出问题的,请ext大虾帮忙看下吧,多谢了。
前台主要代码如下:

<html>
<head>

<script type="text/javascript">

Ext.onReady(function(){
var store=new Ext.data.JsonStore({
autoLoad: true,
url:'UtilGetJsonStore.action',
root: "root",
//data: [{id: "aa", value: "aa"}, {id: "bb", value: "bb"}],//把前面那个注释掉,用这句,是能显示的
fields:['id', 'value']
});

var combo=new Ext.form.ComboBox({
id:'depart',
name:'Pptype',
emptyText:'请选择',
mode : 'local',
editable: false,
triggerAction: 'all',
store:store,
valueField : 'value',
displayField : 'id'

});

combo.render("comboid");

});
</script>
</head>

<body>
<div id="comboid"></div>
</body>
</html>

后台action中getJsonStore方法java代码如下:

private JSONObject jSONObject = null;

/**
* @return the jSONObject
*/
public JSONObject getjSONObject()
{
return jSONObject;
}

/**
* @param jSONObject the jSONObject to set
*/
public void setjSONObject(JSONObject jSONObject)
{
this.jSONObject = jSONObject;
}

public String getJsonStore()
{
System.out.println("getThemes33333...............");

List<JSONObject> jsonObjectList = new ArrayList<JSONObject>();

JSONObject jSONObject1 = new JSONObject();
jSONObject1.put("id", "aa");
jSONObject1.put("value", "aa");

JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("id", "bb");
jSONObject2.put("value", "bb");

jsonObjectList.add(jSONObject1);
jsonObjectList.add(jSONObject2);

JSONArray arr = JSONArray.fromObject(jsonObjectList);

jSONObject.put("root", arr);

return SUCCESS;
}

stuts.xml代码如下:

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

<struts>
<package name="struts2" extends="json-default" namespace="">
<action name="utilGetJsonStore" class="text.UtilAction" method="getJsonStore">
<result type="json">
<param name="root">jSONObject</param>
</result>
</action>
</package>
</struts>

...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dataminer_2007 2011-01-16
  • 打赏
  • 举报
回复
是的,如果你用了 struts2 的话,在配置文件中的ACTION继承的是json的话返回数据就可以自动转化为json格式的数据,这样你的ACTION中的代码就可以不用转化了
网络科技 2011-01-15
  • 打赏
  • 举报
回复
换了其它方式解决问题的了,但这种方法,还是没弄出来。
如果前台的代码没问题,那应该就是后台生成的数据格式不对造成的了。
这里,这个问题我也不大想多测试的了,我就想知道下,通过url,'UtilGetJsonStore.action
后从后台传回的数据类型,是不是一定要为:JSONObject 对象呢?
root转化为,字符串的格式,应该是[{id: "aa", value: "aa"}, {id: "bb", value: "bb"}]这样的吧?
licip 2011-01-15
  • 打赏
  • 举报
回复
你的程序有没有调用到后台的代码,你先确定这一点再说。
dataminer_2007 2011-01-14
  • 打赏
  • 举报
回复
用firefox 看下后台传过来的 JSON 格式数据是否对
kc8886 2011-01-14
  • 打赏
  • 举报
回复
1,做个断点 看看有没有到后台
2,把mode : 'local', 换成mode : 'remote' 试试
网络科技 2011-01-14
  • 打赏
  • 举报
回复
没人懂吗?
可能代码太多了吧
主要看前台的那个吧
var store=new Ext.data.JsonStore({
autoLoad: true,
url:'UtilGetJsonStore.action',
root: "root",
//data: [{id: "aa", value: "aa"}, {id: "bb", value: "bb"}],//把前面那个注释掉,用这句,是能显示的
fields:['id', 'value']
});


不知道,有没什么地方漏写了,后台的应该没问题的

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧