`

zTree插件数据以JSON格式传送到后台程序

阅读更多

最近在项目中使用到了zTree插件,需要在选中某些节点之后传送给后台处理。

起初的处理是,将选中的节点的值使用间隔符进行字符串拼接,拼接后post到后台,然后再使用间隔符进行拆分,然后在循环处理等等。

这样的字符串在后台处理起来非常麻烦:

1、字符串拆分就存在隐患(因为传送到后台的数据可能存在特殊字符啥的)

2、循环来循环去,搞了半天写的逻辑可能最后自己看起来都一塌糊涂的

 

所以决定重写整个数据采集和传送以及后台处理的过程。

 

1、在前端根据zTree的API重新获取需要的数据:

     根据业务需求,我其实是字需要叶子节点的数据的,代码如下:

 

				var zTree = $.fn.zTree.getZTreeObj("treeTrs");
				var checkNodes = zTree.getCheckedNodes(true);
				var uncheckNodes = zTree.getCheckedNodes(false);
				//搜集选中的标准问法信息
				var checkInfo = [];
				for(var i=0; i<checkNodes.length; i++){
					var node = checkNodes[i];
					//直接找叶子节点
					if(!node.children){
						checkInfo.push(node.name);
					}
				}
				//搜集未选中的标准问法信息
				var unCheckInfo = [];
				for(var i=0; i<uncheckNodes.length; i++){
					var node = uncheckNodes[i];
					//直接找叶子节点
					if(!node.children){
						unCheckInfo.push(node.name);
					}
				}

  2、再构造一个Object对象,主要是为了构造json字符串用的

 

//封装数据
var reqObj = new Object();
reqObj.currPro = currPro;
reqObj.provinceBizId = provinceBizId;
reqObj.provinceBizName = provinceBizName;
reqObj.checkInfo = checkInfo;
reqObj.unCheckInfo = unCheckInfo;

  3、ajax请求

     这里使用JSON.stringify函数将Object对象转换成json字符串 传递后java后台中

 

				// 发送请求
				$.ajax({
							type : "post",
							url : "saveProRecOp",
							contentType: 'application/json; charset=utf-8',
							data : JSON.stringify(reqObj),
							success : function(data) {
								if (data.success) {
									alert("操作成功!");
								} else {
									alert("操作失败");
								}
							},
							error : function(result) {
								alert(result);
							}
						});

  4、java后台接收json数据

 

	@RequestMapping(value = "/saveProRecOp", method = RequestMethod.POST)
	public @ResponseBody
	Map<String, Object> saveProRecOp(
			@RequestBody ProvinceTRSEditCommand trsEditCommand,
			HttpServletRequest request) 

  只需要看下方法声明就行了,注意其中有个 @RequestBody ProvinceTRSEditCommand trsEditCommand

项目中在xml中配置了一个MessageConverter,它会根据http请求中的contentType属性来判断,如果请求数据格式为json,则会使用jsonConverter来解析post数据。

至于为什么会解析成ProvinceTRSEditCommand类的对象,是因为该类的属性名称和js中构造的对象var reqObj = new Object(); 的属性是一模一样的,所以jsonConverter能够使用反射的方式来反序列化为一个类对象。

 

 

经过机上几个步骤之后,后台就只需要调用ProvinceTRSEditCommand对象的属性就行了,而不需要一直在间隔符中纠结了。

 

欢迎大家给出宝贵意见哇~~~

 

 

分享到:
评论

相关推荐

    ztree插件前台和后台数据交互

    总的来说,ZTree与Java后台的数据交互是一个完整的前端-后端协作过程,涉及到JSON数据格式、HTTP请求、事件处理等多个环节。理解并熟练掌握这些知识,能帮助我们更好地利用ZTree实现高效、安全的管理系统。在实际...

    Ztree后台拼接Json

    因此,在拼接JSON时,确保你使用的是与ZTree插件版本兼容的数据格式。不同版本的ZTree可能对数据结构有特定要求,比如某些版本可能需要添加额外的属性,如“open”(默认展开状态)或“isParent”(表示是否为父节点...

    ZTree 异步加载 SSH JSON

    JSON数据格式应符合ZTree的规范,通常包含`id`、`name`等字段,如: ```json [ { "id": "1", "name": "节点1", "children": [ // 子节点数据... ] }, { "id": "2", "name": "节点2", ... } ] ``` 最后...

    SSH+ztree+ajax+json

    在SSH后台服务器与前端ZTree交互时,JSON是常见的数据传输格式,因为它的结构与JavaScript对象相似,可以直接被JavaScript解析。 在这个项目中,可能会涉及以下步骤: 1. **服务器端**:使用SSH框架(可能是Spring...

    亲测可用的zTree树菜单插件

    3. **数据驱动**:zTree的数据模型基于JSON,可以通过Ajax动态加载,也可以一次性加载所有数据,方便数据管理和更新。 4. **高效性能**:zTree对大量数据的处理有良好的优化,即使面对成千上万的节点也能保持流畅的...

    基于Ztree实现动态生成Json

    ZTree是一款强大的树形插件,它可以将JSON数据转化为可交互的树状视图。在ZTree中,动态生成JSON通常涉及以下步骤: 1. **数据准备**:首先,你需要创建一个JavaScript对象或者数组,包含树节点的相关信息,如节点...

    zTree树形带JSON

    在这个场景中,"zTree树形带JSON"是一个基于JSON数据格式的树形组件,广泛应用于网页端展示层次化的信息,例如文件系统、组织结构或者导航菜单。zTree是一款功能丰富的JavaScript插件,它能够高效地处理和渲染树形...

    ZTree+Struts2+ajax+json实现checkbox权限树

    在ZTree与Struts2的交互中,JSON被用作数据传输的载体,服务器返回的权限树结构数据以JSON格式表示,前端JavaScript可以轻松解析并渲染到界面上。 在提供的资源中,我们可以看到以下几个文件: 1. **test_if_in_...

    ztree树型插件

    zTree的核心在于其强大的数据模型,允许开发者通过JSON数据格式来定义树结构。在HTML中,只需要一个简单的`&lt;ul&gt;`标签作为容器,zTree会根据提供的数据自动渲染成树形结构。在初始化zTree时,需要设置基本配置项,如...

    ztree最简单的后台传前台例子

    在本例中,FastJSON将被用来把后台获取的数据快速有效地转换为JSON格式,以便于ZTree解析并渲染成树形结构。 具体的实现流程如下: 1. 前端:在HTML页面中,引入ZTree的CSS样式文件和JavaScript脚本文件,然后初始...

    ztree-权限树-简单数据格式

    《ztree-权限树-简单数据格式》是一个与IT领域密切相关的压缩包文件,主要包含了一个名为"ztree"的程序或组件。该文件的描述多次强调“解压即用”,意味着用户在下载并解压文件后,无需进行复杂的安装过程,可以直接...

    ztree最简单的树--标准JSON 数据

    总的来说,ZTree通过其丰富的配置和标准化的JSON数据格式,提供了强大的树形结构展示和交互功能,是前端开发中不可或缺的一个工具。理解并熟练运用`setting`和`treeNode`,可以帮助我们更好地利用ZTree来实现项目...

    zTree插件包

    **zTree插件详解** zTree是一款在JavaScript中广泛使用的树形控件,它轻量级、可定制性高,并且具有丰富的API和多种样式,适用于网页中的各种树形数据展示场景,如文件目录结构、组织架构图等。在前端开发中,zTree...

    vue项目中使用ztree树形插件.pdf

    本文将详细介绍如何在Vue项目中集成ZTree插件,并通过请求后台数据来动态渲染DOM,以实现树形结构的展示。 #### 一、环境准备与依赖安装 在正式开始之前,确保您的Vue项目已经搭建完成。接下来,按照以下步骤进行...

    zTree后台组装树结构java代码

    - 它支持JSON数据格式,使得与服务器端数据交换变得简单。 2. **Java后端处理**: - 在Java后端,我们需要使用Java SQL API(JDBC)来连接MySQL数据库,执行SQL语句,获取数据。 - JDBC提供了连接数据库、发送...

    ztree插件实现树形控件

    - **JSON数据格式**:ZTree通过JSON数据来定义树的结构,包括节点的ID、文本、父节点ID等信息。 2. **ZTree的初始化** - **HTML结构**:首先需要在HTML中创建一个用于显示树形控件的`&lt;ul&gt;`元素,作为ZTree的容器...

    zTree -- jQuery 树插件

    - **数据结构**:zTree的数据结构基于JSON对象,每个节点都有唯一的id、父节点id、文本、图标等属性,这使得数据的组织和操作变得简单。 - **异步加载**:zTree支持动态加载子节点,通过Ajax请求获取数据,降低...

    jquey,zTree插件,asp.net下异步加载数据实例

    jquey,zTree插件,asp.net下异步加载数据实例,项目中要用到jquery,zTree插件,网上没有查到可以直接运行的asp.net实例, 做了一个,可以直接运行,刚开始学这个插件的可以下来参考

    easyui+ztree后台管理系统模板

    6. **开发实践**:在实际使用这个模板时,开发者需要注意数据接口的对接,将后端服务器提供的JSON数据与EasyUI的表格、ZTree的节点数据进行绑定,同时处理用户的交互事件,如点击、拖拽等,以实现完整的业务逻辑。...

    使用jquery-ztree插件,从数据库读取数据,显示在前端

    1.前端使用jquery-ztree插件,后端读取数据库,封装成json格式,在前端展示。数据库字段和Tree这个实体类的字段是一致的。struts2+spring架构。 2.另外里面还含有定时启动的例子。Spring-Quartz的配置和使用。

Global site tag (gtag.js) - Google Analytics