显示树型的页面:
<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;
}
分享到:
相关推荐
这些节点可能包含子节点的引用,从而形成树的层级结构。 在Action中,你可以创建一个类似于以下的类来表示树的节点: ```java public class TreeNode { private String id; private String text; private List...
//上面是按官方文档固定格式,主要是配置样式布局,实际的x轴和y轴数据可以通过ajax在后台取得 //x轴数据 var datax = ['1月', '2月', '3月', '4月', '5月','6月', '7月', '8月', '9月','10月']; //模拟动态数据 ...
9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...
-你可以向其中添加自己的语言版本,并执行js\languages下的pack.bat打包,最后编译工程。 +2009-09-01 v2.0.9 -为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹...
-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNoSelectionAlertInParentReference函数,用来...
# P0 w+ n 6.06 电商数据准备 7.07 后台管理框架搭建 8.08 spu管理跳转 9.09 分类下拉列表的加载 10.10 商品发布的业务逻辑 11.1.建表 12.2.导数据 13.3.统一环境 14.4.生成js文件0 ~* z9 y2 K/ u; k+ N8 S# l* H: V...