显示树型的页面:
<script type="text/javascript">
$(document).ready(function(){
$("#documentCatalog").tree({
data:{
type: "json",
async: true,
opts:{
method: "POST",
url: "http://localhost:8088/oa/DocumentCatalog/documentCatalogTree.action?type=${param.type}&parentId=-1"
}
},
ui:{
dots : true, // BOOL - dots or no dots
theme_name : "default"// if set to false no theme will be loaded
}
}
);
});
</script>
struts.xml中相应的Action的配置:
<action name="documentCatalogTree" class="documentCatalogTree">
<!-- 不用设置result,直接用PrintWriter输出JSON型的数据 -->
</action>
封装JSTREE使用的JSON数据的类
public class CatalogTree {
private String data;
private String state;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
action中的方法:
配置Tree的action:
因为action返回的是树的页面,所以Action应该给页面传递JSON数据
可以使用JSON的struts插件来解决,但处理起来不太好
使用以下方式:
在execute方法中return null,这样struts就不会到struts.xml中找相应的result了而是调用方法返回一个printWriter的数据,
且在返回之前把这个数据封闭成JSON的格式
数据的封装:
返回值一定要注意必须严格符合JSON的格式
有两个方法:一是使用字符串拼接的方式来封装,二是使用一个JSON的工具www.json.org里下载google-gson
使用前者太麻烦且容易出错
@Override
public String execute() throws Exception {
List<DocumentCatalog> catalogs = service.getDocumentCatalogs(type, parentId);
List<CatalogTree> trees = new ArrayList<CatalogTree>();
for(DocumentCatalog catalog : catalogs){
CatalogTree tree = new CatalogTree();
tree.setData(catalog.getName());
tree.setState("closed");
trees.add(tree);
}
Gson gson = new Gson();
String json = gson.toJson(trees);
HttpServletResponse response = ServletActionContext.getResponse();
//在取得out对象之前必须先进行设置
response.setContentType("text/json");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.write(json);
out.flush();
return null;
}
分享到:
相关推荐
js树形菜单组件,主要解决大数据加载节点卡死问题。
主要为大家详细介绍了基于jstree使用AJAX请求获取数据形成树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
例程可正常使用,非常的简单,基本上学过几天代码的人都能够正常使用。采用纯js编写,不复杂
jstree是一款非常实用的jQuery目录树插件。jsTree树插件易于扩展,可以配置主题,支持HTML和JSON格式的数据,还支持异步回调数据,支持多级树结构等。
jsTree中文api文档,js操作树可移动节点 增加修改删除节点.jsTree中文api文档,js操作树可移动节点 增加修改删除节点.
jsTree实例,jsTree实例,jsTree实例
纯JavaScript+树形菜单,基于js的无限树形菜单(dtree),史上最完美最简单js树形菜单,AlaiJSCtr,jstree+JS树形菜单合集,js树形菜单,模仿CSDN树型菜单
十分漂亮的 js tree控件 同时也支持动态生成树,使用方便快捷。
基于jsTree的无限级树JSON数据的转换 a 基于jsTree的无限级树JSON数据的转换 ddd v 基于jsTree的无限级树JSON数据的转换
jsTree操作 jsTree插件简介 Web开发使用jsTree实例
jsTree是基于javascript的一个跨浏览器树控件,功能强大,既可以一次性把所有节点都加载到客户端,也可以只加载一层,点击节点后再去服务端获取下层节点。
该程序是用java开发的,用到了maven技术。该程序是一套简单的HR系统,其中菜单管理等用到了jsTree,需要的可以下载看看做个参考。
jsTree大集合 jsTree大集合 jsTree大集合
用JavaScript写的树形菜单,种类很多,对初学者很有帮助!
可后台控制的纯JS树Tree 无刷新JS 树, 设计美观, 后台容易控制, 使用方便,灵活, 欢迎大家下载
js javascript tree web jsp
jstree 1.0 最新版jstree 1.0 最新版jstree 1.0 最新版jstree 1.0 最新版jstree 1.0 最新版
jsTree-directive, jsTree的Angular 指令 文档 jstree指令jsTree的Angular 指令文档文档使用 bower 安装$ bower i jstree-directive教程使用 jsTree,Angularjs和Expressjs语言构建一个基于We
jsTree中文文档
jstree ajax ddd jstree ajax ddddd jstree ajax dddddd jstree ajax dddddddd ffffff