Ztree的简单使用
1.我这里用的是struts2+Ztree.用到的lib如下:
2.首先建立一个树节点TreeNodeBean.java
- public class TreeNodeBean {
- private String id;
- private String pId;
- private String name;
- private boolean open;
- private boolean checked;
- public TreeNodeBean(){};
- //此处省略get set方法
- }
3.接下来就是action了,TreeAction.action
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.struts2.ServletActionContext;
- import net.sf.json.JSONSerializer;
- import com.opensymphony.xwork2.ActionSupport;
- public class TreeAction extends ActionSupport {
- private static final long serialVersionUID = 1L;
- public String test(){
- System.out.println("==============test==============");
- return "treejsp";
- }
- public void add(){
- System.out.println("================add=================");
- }
- private String initTree(){
- System.out.println("==============initTree==============");
- // TODO Auto-generated method stub
- TreeNodeBean tnb1 = new TreeNodeBean();
- tnb1.setName("根元素1");
- tnb1.setId("1");
- tnb1.setpId("0");
- tnb1.setOpen(true);
- // tnb1.setChecked(true);
- TreeNodeBean tnb1_1 = new TreeNodeBean();
- tnb1_1.setName("元素1_1");
- tnb1_1.setId("1_1");
- tnb1_1.setpId("1");
- tnb1_1.setOpen(true);
- // tnb1_1.setChecked(false);
- TreeNodeBean tnb1_1_1 = new TreeNodeBean();
- tnb1_1_1.setName("元素1_1_1");
- tnb1_1_1.setId("1_1_1");
- tnb1_1_1.setpId("1_1");
- // tnb1_1_1.setChecked(false);
- TreeNodeBean tnb1_1_2 = new TreeNodeBean();
- tnb1_1_2.setName("元素1_1_2");
- tnb1_1_2.setId("1_1_2");
- tnb1_1_2.setpId("1_1");
- TreeNodeBean tnb2 = new TreeNodeBean();
- tnb2.setName("根元素2");
- tnb2.setId("2");
- tnb2.setpId("0");
- tnb2.setOpen(true);
- TreeNodeBean tnb2_2 = new TreeNodeBean();
- tnb2_2.setName("元素2_2");
- tnb2_2.setId("2_2");
- tnb2_2.setpId("2");
- List<TreeNodeBean> list = new ArrayList<TreeNodeBean>();
- list.add(tnb1);
- list.add(tnb1_1);
- list.add(tnb1_1_1);
- list.add(tnb1_1_2);
- list.add(tnb2);
- list.add(tnb2_2);
- // System.out.println(JSONObject.fromObject(tnb1).toString());//javaBean转换成json格式
- // System.out.println(JSONObject.fromObject(list).toString());//javaBean转换成json格式
- String s = JSONSerializer.toJSON(list).toString();
- System.out.println(s);//list转换成json格式
- return s;
- }
- public void outTree(){
- System.out.println("==============outTree==============");
- // ActionContext act = ActionContext.getContext();
- HttpServletResponse response = ServletActionContext.getResponse();
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out;
- try {
- out = response.getWriter();
- out.print(initTree());
- out.flush();
- out.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
4.接着是页面:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <link rel="stylesheet" href="css/demo.css" type="text/css">
- <link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <script type="text/javascript" src="js/jquery.ztree.core-3.4.js"></script>
- <script type="text/javascript" src="js/jquery.ztree.excheck-3.4.js"></script>
- <title>树的测试页面</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- <SCRIPT type="text/javascript">
- <!--
- var setting = {
- check: {
- enable: true
- },
- data: {
- simpleData: {
- enable: true
- }
- },
- callback: {
- onClick: onClick
- }
- };
- function onClick(event, treeId, treeNode, clickFlag) {
- alert("treeId:"+treeId+",treeNode.name:"+treeNode.name+",treeNode.checked:"+treeNode.checked);
- }
- function r(){
- var result = $.ajax({
- url: '<%=path%>/TreeAction!outTree.action',
- async: false
- }).responseText;
- return result;
- }
- $(document).ready(function(){
- var zNodes = r();
- //alert(zNodes);
- $.fn.zTree.init($("#treeDemo"), setting, eval('(' + zNodes + ')'));
- });
- //-->
- function onCheck(e,treeId,treeNode){
- var treeObj=$.fn.zTree.getZTreeObj("treeDemo"),
- nodes=treeObj.getCheckedNodes(true),
- v="";
- for(var i=0;i<nodes.length;i++){
- v+=nodes[i].name + ",";
- alert(nodes[i].id); //获取选中节点的值
- }
- }
- function onCheck(){
- var treeObj=$.fn.zTree.getZTreeObj("treeDemo"),
- nodes=treeObj.getCheckedNodes(true),
- v="",
- v2="";
- for(var i=0;i<nodes.length;i++){
- v+=nodes[i].name + ",";
- v2+=nodes[i].id + ",";
- //alert(nodes[i].id); //获取选中节点的值
- }
- if(v==""){
- alert("至少选择一个选项");
- }else{
- alert("你选中的值为:"+v);
- alert("你选中的id为:"+v2);
- }
- }
- function tj(){
- document.forms[0].action="<%=path%>/TreeAction!add.action";
- //document.forms[0].submit();
- onCheck();
- }
- </SCRIPT>
- </head>
- <body>
- <h1>treejsp.jsp测试页面</h1>
- <form action="#">
- <div style="height:80px;">
- <div id="treeDemo" class="ztree"></div>
- <input type="button" value="提交"/>
- </div>
- </form>
- </body>
- </html>
转载于:https://blog.51cto.com/xqsea/1104937