`

实例解析java + jQuery + json工作过程(获取JSON数据)

阅读更多

前天刚刚写的一篇关于《实例解析java + ajax(jQuery) + json工作过程(登录)》的文章引起了网友们的关注和好评,

自从本站的账务管理系统(个人版)开源 以后很多网友询问系统的实现方式,我一一解释……,为此今天写文章详细讲解系统功能的实现细节。

以本站的开源项目账务管理系统的“债务人”模块为例子讲解

一、效果预览

债务人详细页面效果预览

债务人详细页面效果预览

二、实现方式

基本思想就是绑定列表中的人员名称触发事件,获得当前人员的ID发送ajax请求到后台,后台根据ID查询详细信息,返回JSON数据结果至前台,前台通过对话框组件显示人员详细

1、绑定click事件到列表的人员名称
在项目中的iouser/js/iouser.js文件中有这样一个方法:

/**
 * 点击名称弹出详细
 */
function regShowDetail() {
	$("span[name=iouid]").unbind('click').bind('click', function(){
		showDetail($(this).parent().parent().find('input[name=chk]').val());
	});
}

 

通过regShowDetail绑定了点击人员时执行showDetail的事件,

$(this).parent().parent().find('input[name=chk]').val()
//上面这句话就是获得列表左侧的复选框的value值以便传送给后台

 

  • 下面介绍一下showDetail方法的功能实现:
  • /* 查看用户详细资料
     * @param {} userId 用户ID
     */
    function showDetail(userId) {
    	// 创建一个对话框组件
    	var dialog = $.weeboxs.open('showDetail.html', {
    		title: '正在加载用户信息……',
    		contentType: 'ajax',
    		width: 600,
    		height: 350,
    		animate: true,
    		clickClose: false,
    		type: 'wee',
    		showOk: false,
    		cancelBtnName: '关 闭',
    		onopen: innerShowDetail
    	});
     
    	//内部函数,实现债务人详细信息的载入、设置值
    	function innerShowDetail() {
    		// 获得JSON格式的数据
    		$.getJSON('load.do',{id : userId}, function(json) {
    			// 根据key设置value
    			for (key in json) {
    				if(key == 'id'){
    					$('#detailDiv #' + key).val(json[key]);
    				} else {
    					if(json[key] == ''){
    						// 没有值设置为空
    						$('#detailDiv #' + key).html(' ');
    					} else if(key == 'sex'){
    						$('#detailDiv #' + key).html(json[key] == '0' ? '女' : '男');
    					} else if(key == 'group'){
    						if(json[key] != null) {
    							$('#detailDiv #' + key).html(json[key]['groupName']);
    						}
    					} else {
    						$('#detailDiv #' + key).html(json[key]);
    					}
    				}
    			}
     
    			//设置对话框标题和内容
    			$('#detailDiv').removeAttr('class');
    			dialog.setTitle('查看人员[' + json['userName'] + ']详细资料');
    			dialog.setContent($('#detailDiv').html());
    		});
    	}
    }
     
  • showDetail方法首先打开一个对话框组件 加载一个静态的模板showDetail.html
    • 文件中的ID都是根据信息点命名的,这样便于通过ID设置值
  • 通过路径load.do 请求后台查询人员详细,后台处理类为net.yanhl.iouser.action.IOUserAction的loadUser()方法,代码请点击这里查看
    • 怎么查询一个POJO对象就介绍了,重点说明怎么返回JSON格式的数据
    • 这里还是使用java语言使用的JSON工具json-lib,关于json-lib的资料上篇文章也已介绍,这里不再重复;
  • // 获取一个Iouser对象,包含债务人的信息
    Iouser user = (Iouser) getBaseManager().get(Iouser.class, iouserId);
     
    //使用json-lib工具把一个POJO对象解析为一个JSON格式数据
    JSONObject jsonObject = JSONObject.fromObject(user, config);
     
    //向前台发送结果集
    print(response, jsonObject.toString());

     

    最中返回的结果集如下:

    {
    “age” : 56,
    “companyAddress” : “32″,
    “companyName” : “未知”,
    “companyPhone” : “–”,
    “companyZip” : “”,
    “createDate” : null,
    “creatorId” : 1,
    “group” : {
    “childSize” : 0,
    “createDate” : {
    “date” : 27,
    “day” : 6,
    “hours” : 0,
    “minutes” : 0,
    “month” : 11,
    “nanos” : 0,
    “seconds” : 0,
    “time” : 1230307200000,
    “timezoneOffset” : -480,
    “year” : 108
    },
    “creatorId” : 1,
    “groupName” : “商务”,
    “id” : 33,
    “orderNum” : 0,
    “remark” : “”
    },
    “homeAddress” : “香港九龙”,
    “homePhone” : “”,
    “homeZip” : “”,
    “id” : 12,
    “mobilePhone” : “15856453456″,
    “orderNum” : 0,
    “remark” : “香港富豪”,
    “sex” : “1″,
    “userName” : “李嘉诚”
    }
    
    

     

    前台获得了结果集之后就可以根据key获得value来设置详细页面的内容了,代码如下:

    for (key in json) {
    	if(key == 'id'){
    		$('#detailDiv #' + key).val(json[key]);
    	} else {
    		$('#detailDiv #' + key).val(json[key]);
    	}
    }

     

    至此就是我们刚刚看到的效果了,是不是很简单O(∩_∩)O~

    附:

    分享到:
    评论

    相关推荐

      实例解析java_+_jQuery_+_json工作过程

      ### 实例解析java+jQuery+json工作过程 #### 背景与概述 在现代Web开发中,前后端分离已成为一种普遍的技术趋势。在这种模式下,前端负责展示数据及交互逻辑,而后端则专注于处理业务逻辑及数据管理。Java、jQuery...

      SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

      当用户选择省份后,jQuery会发送Ajax请求到服务器,服务器使用SSH框架处理请求,查询数据库并返回JSON格式的城市数据,最后jQuery解析JSON并在前端更新城市选择框。 总结来说,这个压缩包提供的示例是一个基于SSH...

      java+ajax+json+jquery完整实例

      这个“java+ajax+json+jquery完整实例”提供了一个实际的应用场景,展示了如何将这些技术有效地结合在一起。下面,我们将详细讨论这些技术以及在这个实例中的应用。 1. **Java**:Java是一种广泛使用的面向对象的...

      实例解析java jQuery json工作过程(登录).pdf

      【标题】: "实例解析java + jQuery + json工作过程(登录)" 【描述】: 本文将详细解析在Java环境下,结合jQuery库和JSON数据格式完成登录功能的工作流程。 【标签】: ajax, Java, jQuery, json, json-lib, 教程 ...

      java+json+jquery经典实例

      结合“java+json+jquery经典实例”这个标题和描述,我们可以推断这个压缩包可能包含了一些使用Java后端处理数据,通过JSON格式进行传输,并利用jQuery在前端展示和操作数据的简单示例项目。例如,它可能有一个简单的...

      Django + jquery + json 实例实现 在此记录

      在本实例中,我们将探讨如何使用Django框架与jQuery库以及JSON数据格式来构建一个功能性的Web应用。Django是一个强大的Python Web框架,它提供了一整套解决方案来处理后端逻辑,而jQuery则是一个广泛使用的...

      Struts+Jquery+Ajax+Json应用实例

      Struts、jQuery、Ajax以及JSON是Web开发中的四个关键技术,它们在构建动态、交互式的Web应用程序中发挥着重要作用。下面将分别介绍这些技术的核心概念及其在实际应用中的结合使用。 **Struts框架**:Struts是Apache...

      java+jsp+ajax+jst+jquery实例

      【标题】"java+jsp+ajax+jst+jquery实例"涉及了Web开发中的多个关键技术和实践,主要关注Java后端、JSP(Java Server Pages)前端、Ajax(Asynchronous JavaScript and XML)、JST(JavaScript Templates)以及...

      ajax+json+java

      通过Ajax实现页面局部更新,通过JSON传递和解析数据,通过Java处理业务逻辑和数据交互,从而提供流畅且高效的用户体验。在实际应用中,开发者需要理解这些技术的工作原理,并熟练运用它们来构建交互式的Web应用。

      Java+ajax写的登录实例

      通过这个"Java+ajax写的登录实例",我们可以了解到Java后端和Ajax前端如何协同工作,以提供流畅的用户体验。同时,这也是一个很好的实践案例,帮助初学者理解Web开发中的前后端交互和数据通信机制。

      Struts2+JQuery+Json实例

      而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。 在"Struts2+JQuery+Json实例"中,我们探讨的是如何结合这三个技术...

      struts2+jQuery+json 实例

      结合实例,"struts2+jQuery+json 实例"很可能是创建了一个Web应用,用户在前端通过jQuery发送AJAX请求,这些请求可能包含表单数据或者对页面的某些操作。后端Struts2框架接收到请求后,会调用相应的Action执行业务...

      flexigrid+struts2+json+jquery实例

      总的来说,这个实例展示了如何利用Flexigrid、Struts2、JSON和jQuery构建一个交互性强、功能完善的Web应用,实现了数据的动态加载、灵活的用户交互以及后端数据的高效传输。这样的组合在现代Web开发中非常常见,因为...

      struts2+spring+hibernate+jquery+dwr+json

      6. JSON (JavaScript Object Notation):JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在本项目中,JSON作为Struts2、jQuery、DWR之间传递数据的媒介,提高了数据传输的效率和灵活...

      net+jquery+json实现ajax

      jQuery的getJSON方法是一个异步函数,用于从指定URL获取JSON数据,并在成功时执行回调函数。在这个例子中,它调用了"AjaxHandler.ashx"这个服务端处理程序,然后在回调函数中解析返回的JSON数据。$.each方法用于遍历...

      struts2+jQuery+json 实例 测试过了 运行成功 从别人那偷来的

      在项目中,`Struts2JQueryJson`文件夹可能包含了HTML页面、JavaScript脚本、Struts2相关的Action类、以及可能的 strut2 配置文件等资源。 总结来说,这个实例通过结合Struts2的后端控制、jQuery的前端交互和JSON的...

      asp+jquery ajax实例源码,添加,删除,修改,分页

      - 使用Response对象返回响应,可以是JSON格式的数据,便于前端解析并更新页面。 3. **添加数据** - 在前端,jQuery监听表单提交事件,阻止默认的表单提交行为,然后使用$.ajax()发送包含新数据的POST请求到ASP...

      jquery与java交互通过json传递数据的经典实例

      这个经典实例展示了jQuery、AJAX、Java和JSON在Web开发中的协同工作,通过这种方式,前端和后端可以高效地交换数据,实现动态更新页面而无需刷新整个页面,提升了用户体验。学习并熟练掌握这些技术对于成为一名优秀...

      ssi+json+jquery 案例

      标题中的"SSI+JSON+jQuery案例"表明这是一个关于服务器端包含(SSI)、JavaScript对象表示法(JSON)以及jQuery JavaScript库的实际应用示例。这个项目可能是为了演示如何在Web开发中结合这三个技术,以提高效率和...

      Struts2+hibernate3+JQuery+ajax+json三级联动

      总的来说,这个“三级联动”项目展示了如何利用Struts2进行请求处理,Hibernate进行数据操作,JQuery实现前端交互,Ajax进行异步通信,以及Json进行数据交换。这是一个典型的Web应用开发实例,对于理解和掌握这些...

    Global site tag (gtag.js) - Google Analytics