关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
2012-01-13 10:32
731 查看
这里列出 页面代码 和 Action类相关代码 供参考:
页面代码(jQuery ajax异步请求获取数据):
后台Action类相关代码(主要是看怎样返回JSON数据):
直接打印System.out.println(jsonMassage);然后return SUCCESS;即可将jsonMassage数据返回到页面的success方法中:
为什么Action中的save方法知道返回什么数据到客户端呢? 这是由Action的配置文件配置决定的:<param name="root">jsonMassage</param>,这里设置了方法save返回的是jsonMessage(属性/对象)。至于jsonMessage是什么数据类型,这里并不关心,返回是自动会查到他的数据类型,并以相应的数据格式返回到客户端-页面。
=========================题外话==============================
这2个Action配置有什么不同呢?大家看出来了吗?对,返回的参数方式不一样
那么<param name="includeProperties">result </param>和<param name="root">jsonMassage</param>有什么不一样吗?大家查查吧...
页面代码(jQuery ajax异步请求获取数据):
//保存决策信息 function saveDecision() { var rowid = checkSelected(); var rowData = jQuery("#list").jqGrid('getRowData', rowid); var processIsRight = rowData["processIsRight"]; if(rowid==-1){ alert("只能选择一个推荐方案");return; } else if(processIsRight==0){//检查流程是否存在问题 alert("该流程方案下有任务无岗位默认人,请仔细检查该流程方案");return; } //判断是否选择了决策人:必选 var _decisionMaker = $("#businessModule").find("option:selected").val(); if(_decisionMaker=='' || _decisionMaker == "undefined") { alert("请选择一个决策人!"); return;} else if(rowid>0){ var url = "saveDecision.action?" + getParams(); //document.write(url); alert(url); /***/ $.ajax({ url : url, type : 'POST', dataType : 'json', success : function(json) { //reference: http://blog.csdn.net/jpr1990/article/details/6931027 alert(json); window.close(); }, error : function() { alert('数据加载失败,请重试..'); //window.close(); } }); }else{ alert("请选择一个推荐方案");return; } }
后台Action类相关代码(主要是看怎样返回JSON数据):
/** * 保存决策信息 * 0 - 未启动. 1 - 暂停. 2- 运行中. 3 - 失败. 4 - 终止. 5 - 完成. 6 - 已删除. */ public String save() { if (assistDecision != null) { try { // 生成实际决策时间 Timestamp decision_date = new Timestamp(System.currentTimeMillis());// 不能大于强制决策时间,还没有做判断 assistDecision.setDecisionMaker(assistDecision.getDecisionMaker()); assistDecision.setDecisionTime(decision_date); //判断是否自动启动流程 if(this.getIsStartProcess().equals("true")){ assistDecision.setSolutionState(2);// 设置SolutionState 为:2-运行中 this.decisionExecutorService.saveAssistDecision(assistDecision,true,processId,emgencyInfoProcessId); }else{ assistDecision.setSolutionState(0);// 设置SolutionState 为:0-未启动 this.decisionExecutorService.saveAssistDecision(assistDecision,false,processId,emgencyInfoProcessId); } jsonMassage = "决策成功,数据已保存!"; } catch (Exception e) { e.printStackTrace(); jsonMassage = "该流程方案下有任务无岗位默认人,请仔细检查该流程方案"; System.out.println(jsonMassage); return SUCCESS; } } return SUCCESS; }
直接打印System.out.println(jsonMassage);然后return SUCCESS;即可将jsonMassage数据返回到页面的success方法中:
success : function(json) { //reference: http://blog.csdn.net/jpr1990/article/details/6931027 alert(json); window.close(); }, error : function() { alert('数据加载失败,请重试..'); //window.close(); }
为什么Action中的save方法知道返回什么数据到客户端呢? 这是由Action的配置文件配置决定的:<param name="root">jsonMassage</param>,这里设置了方法save返回的是jsonMessage(属性/对象)。至于jsonMessage是什么数据类型,这里并不关心,返回是自动会查到他的数据类型,并以相应的数据格式返回到客户端-页面。
<action name="saveEvent" class="eventAction" method="saveEvent"> <result name="success" type="json"> <param name="includeProperties">result </param> </result> </action> <action name="saveDecision" class="decisionExecutorAction" method="save"> <result name="success" type="json"> <param name="root">jsonMassage</param> </result> </action>
=========================题外话==============================
<action name="saveEvent" class="eventAction" method="saveEvent"> <result name="success" type="json"> <param name="includeProperties">result </param> </result> </action> <action name="saveDecision" class="decisionExecutorAction" method="save"> <result name="success" type="json"> <param name="root">jsonMassage</param> </result> </action>
这2个Action配置有什么不同呢?大家看出来了吗?对,返回的参数方式不一样
那么<param name="includeProperties">result </param>和<param name="root">jsonMassage</param>有什么不一样吗?大家查查吧...
相关文章推荐
- 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)
- Jquery跨域调用struts2的Action返回json数据易出现的问题
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- Jquery跨域调用struts2的Action返回json数据易出现的问题
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及文件上传的部分
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及非文件上传的部分
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取
- 关于获取JSON数据,出现格式错误的问题记录
- jquery返回json格式数据来获取每天的天气预报
- JQuery获取并解析php返回的json格式数据的简单示例
- struts2 从action中返回json格式数据:
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
- struts2的action中返回json格式的数据