前台代码 :
[code="java"] store : Ext.create('Ext.data.TreeStore', {
root : {
id : '00',
text : '民星兽药',
expanded : true
//nodeType : 'async'
},
proxy : {
autoLoad:true,
type : 'ajax',
url : ctxpath + '/SystemManager/TreeList',
reader : {
type : 'json',
root : 'alltrees'
}[/code]
Action:
[code="java"] @Override
public String execute() throws Exception {
ActionContext actionContext = ActionContext.getContext(); // 取到struts容器
Map session = actionContext.getSession(); // 取得session
User user = (User) session.get("user");
try {
alltrees = userServices.listTrees(user.getUsername());
for(int i=0;i<alltrees.size();i++){
System.out.println(alltrees.get(i).getText());
}
} catch (Exception e) {
e.printStackTrace();
}
// this.success = true;
return SUCCESS;
}[/code]
listTrees对应的业务方法:
[code="java"]public List
前台后太都没报错;
谷歌浏览器截取到返回页面的数据:
{"alltrees":[{"children":[{"children":[],"cls":"file","expanded":true,"id":"100221","leaf":true,"parentId":"100200","text":"叶子一","url":"\/veterinaryDrug\/SystemManager\/RoleList"}],"cls":"folder","expanded":false,"id":"100200","leaf":false,"parentId":"00","text":"系统管理","url":null},{"children":[],"cls":"folder","expanded":false,"id":"100201","leaf":false,"parentId":"00","text":"销售","url":null}]}
现象如图;
还有一个问题:为啥登录进来后程序会加载两次treeStore??
[code="java"]
应该多贴点前端js代码 , 后端java只要返回json字符串即可
可以参考下地址 [url]
https://gist.github.com/x03570227/2994798
[/url]
至于请求两次, 可以是你自己autoload一次
还有看看其他有没有reload或者tree里面的 expand展开事件处理
[/code]