dhtmlxtree 后台获取前台tree选中的id以保存到数据库中

来源:互联网 发布:照片加背景音乐软件 编辑:程序博客网 时间:2024/05/17 04:49

如果你还不知道如何创建一棵树,请看上一篇文档,thankyou思密达!

第一步:

<script type="text/javascript">$(function(){var tree2 = new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);tree2.setImagePath("${ctx}/dhtmlxtree/csh_vista/");tree2.enableCheckBoxes(1);tree2.enableThreeStateCheckboxes(true);//tree2.loadXML("${ctx}/dtree/tree3.xml");//用EL表达式获取json数据var json = ${json};  tree2.loadJSONObject(json);
//上面是已经把树木显示出来了,下面的代码就是把你选中的id传到后台
//注意的是传过去的也是所有id组成的Json数据格式
  $("#submit").click(function(){    //$('input[name="selectedCol"]').val(tree2.getAllChecked());  //document.form1.submit();  var params = "selectedCol="+ tree2.getAllChecked() +"&x="+Math.random();
//id选择器,对应的表单和submit提交按钮一定要设置id与下面名字对应上  $.post($("#form").attr("action")+"?"+params,$("#form").serialize(),function(data){  });return false;});});</script>
//注意id
<form id="form" name="form" action="${ctx}/security/addRole.action" method="post">
<input id="submit" type="submit" name="submit" value="提交"/>

第二步:你在Action类里要用到的:

var params = "selectedCol="+ tree2.getAllChecked() +"&x="+Math.random();中的selectedCol这个变量,
自然在Action里要是用属性接收,有set和get方法:

private String selectedCol;public String getSelectedCol() {return selectedCol;}public void setSelectedCol(String selectedCol) {this.selectedCol = selectedCol;}
在后台接收到传递过来的id数据是这样的:
{"1","1-1","1-2","f-1-1","2","2-1","f-2-1"}

第三步:

现在你要用的是id,所以接下来你就要想法获取你所需要的id,好了直接给你思路吧,就是用split()方法然后就能获得到你所需要的id,然后再保存到数据库里:
方法如下:
String[] para = getSelectedCol().split(",");System.out.println(getSelectedCol());for (int i = 0; i < para.length; i++) {String[] ss = para[i].split("-");if (ss.length == 1) {continue;}if (ss.length == 2) {role.getCols().add(columnService.queryById(Integer.parseInt(ss[1])));}if (ss.length == 3) {role.getPrivs().add(privilegeService.queryById(Integer.parseInt(ss[2])));}}
好了tree的id就获取到并保存到数据库中了。
如果想知道如何一进入页面就从数据库中把当前角色的树的id查出来,并在树的id设置自动选中,请看下篇文档,谢谢思密达!偷笑偷笑偷笑奋斗


0 0
原创粉丝点击