前台返回json数据的常用方式+常用的AJAX请求后台数据方式
我个人开发常用的如下所示:
之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据
现在常用的是返回JSON数据,XML的时代一去不复返
JSON相对于XML要轻量级的多
对JSON不是十分熟悉的可参考此网站:http://www.w3school.com.cn/json/index.asp
对Ajax不是十分熟悉的可参考此网站:http://www.w3school.com.cn/ajax/index.asp
下面例子环境为:JDK8+tomcat7+MAVEN+WINDOWS环境
框架环境为:Spring+Mybatis+SpringMVC
第一种方式:
@RequestMapping(value = "/getUserInfo2", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public String getUserInfo(String User_No, Model model) { User user = userService.findUserInfo(User_No); if (user != null) { Map<String, User> map = new HashMap<String, User>(); map.put("user", user); model.addAttribute("user", user); return JSON.toJSONString(map); } else { String msg = "{\"returnMsg\":\"不存在\"}"; Map<String, Object> returnMsg = JSON.parseObject(msg); return JSON.toJSONString(returnMsg);
} }
第二种方式:
@RequestMapping(value="getHeadHotelIdInfo",method=RequestMethod.POST,produces="application/json;charset=utf-8")
@ResponseBody
public String getHeadHotelIdInfo(HttpServletRequest request) { String ids = request.getParameter("id"); Integer id = new Integer(ids); Map<String,Object> map = new HashMap<String,Object>(); HeadHotel hh = headHotelService.selectById(id); map.put("hh", hh); return JSONObject.toJSONString(map); }
第三种方式:
@RequestMapping(value="/deleteHeadHotelInfo", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public Object deleteHeadHotelInfo(HttpServletRequest request) { JSONObject json = new JSONObject();
String ids = request.getParameter("id");
logger.info(ids);
Integer id = new Integer(ids);
HeadHotel hh = headHotelService.selectById(id); try { int lines = hotelChainService.TreeSelectHotelChainSize(hh.getNo()); if(lines==0) {
headHotelService.deleteHeadHotelInfo(id); json.put("returnCode", "000000");
json.put("returnMsg", "删除集团公司成功");
logger.info("删除成功"); }else { json.put("returnCode", "000000");
json.put("returnMsg", "存在子酒店不能删除");
logger.info("删除失败"); } } catch (Exception e) {
e.printStackTrace(); json.put("returnCode", "111111");
json.put("returnMsg", "删除集团公司失败");
logger.error("删除失败"); }
return json;
}
第四种方式:
@RequestMapping(value="removePermission",method=RequestMethod.POST,produces="application/json;charset=utf-8")
@ResponseBody
public Object removePermission(@RequestBody QueryVo qv,HttpServletRequest request, Model model) {
JSONObject json = new JSONObject(); Integer id[] = qv.getId(); int size=java.lang.reflect.Array.getLength(qv.getId());
logger.info("ID数量:"+size);
try {
for (int i = 0; i < id.length; i++) {
RoleResource rr = new RoleResource();
rr.setId(id[i]);
logger.info("ID:"+id[i]);
List<RoleResource> rs = new ArrayList<RoleResource>();
rs.add(rr);
roleResourceService.removeRoleResourceStatus(rs); } json.put("returnCode", "000000");
json.put("returnMsg", "权限修改成功");
logger.info("权限修改成功"); } catch (Exception e) {
json.put("returnCode", "000000");
json.put("returnMsg", "权限修改失败");
logger.error("权限修改失败"); } return json; }
结合QueryVO:
package cn.pms.vo; import java.util.List; import cn.pms.model.AccountCoupon;
/**
* 多参数传递定义QueryVo
* @author youcong
*
*/
public class QueryVo{ private List<AccountCoupon> acs; String[] memberId; private String couponId; /*
* 角色编号
*/
String[] roleNo; /**
* 资源编号
*/
String[] resourceNo; /**
* 角色-资源 ID
* @return
*/
Integer id[]; public Integer[] getId() {
return id;
} public void setId(Integer[] id) {
this.id = id;
} public String[] getRoleNo() {
return roleNo;
} public void setRoleNo(String[] roleNo) {
this.roleNo = roleNo;
} public String[] getResourceNo() {
return resourceNo;
} public void setResourceNo(String[] resourceNo) {
this.resourceNo = resourceNo;
} public String[] getMemberId() {
return memberId;
} public void setMemberId(String[] memberId) {
this.memberId = memberId;
} public String getCouponId() {
return couponId;
} public void setCouponId(String couponId) {
this.couponId = couponId;
} public List<AccountCoupon> getAcs() {
return acs;
} public void setAcs(List<AccountCoupon> acs) {
this.acs = acs;
} }
第五种方式:
@RequestMapping(value = "/updateVersion", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public String updateHeadHotel(@RequestBody AppVersion appVersion) { Map<String, Object> map = new HashMap<String, Object>();
logger.info(appVersion);
try {
logger.info("APP名字:"+appVersion.getAppName());
// 调用数据库修改操作
appVersion.setUpdateTime(Tools.getCurrentDate());
appVersion.setServerFlag("1");
appVersionService.updateById(appVersion);
map.put("returnCode", "000000");
map.put("message", "成功更新版本信息"); }catch (Exception e) {
// TODO: handle exception
map.put("returnCode", "111111");
map.put("message", "更新版本信息失败"); } return JSONObject.toJSONString(map);
}
第六种方式:
@RequestMapping(value="/delectHotel", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public Map<Object,Object> delectHotel(HttpServletRequest request) { Map<Object,Object> map = new HashMap<Object,Object>(); String id = request.getParameter("id");
logger.info("delectHotel ===== id : " + id);
//System.out.println("delectHotel ===== id : " + id);
String hotelNo = request.getParameter("hotelNo");
logger.info("delectHotel ===== hotelNo : " + hotelNo);
//System.out.println("delectHotel ===== hotelNo : " + hotelNo); try { List<Room> room_list = roomService.selectRoomByHotelNo(hotelNo.trim());
//System.out.println("delectHotel ===== room_list : " + room_list);
//如果集合不为空,说明该酒店关联有房间, 不允许删除
if(room_list != null) {
map.put("returnMsg", "该酒店关联有房间, 不允许删除!");
map.put("returnCode", "121212");
return map;
} hotelService.deleteHotelById(Integer.parseInt(id.trim()));
//成功
map.put("returnCode", "000000");
map.put("returnMsg", "success");
} catch (Exception e) {
e.printStackTrace();
//失败
map.put("returnCode", "111111");
map.put("returnMsg", "失败");
}
logger.info("map = " + map);
return map;
}
第七种方式:
@RequestMapping(value="/getServiceId", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public Object getServiceId(HttpServletRequest request) { Map<Object,Object> map = new HashMap<Object,Object>(); JSONObject json = new JSONObject(); logger.info("省 ================ " + request.getParameter("province"));
logger.info("市 ================ " + request.getParameter("cityname")); String city = request.getParameter("province");
String address = request.getParameter("cityname"); map.put("city", city);
map.put("address", address); try {
//调用数据库查询操作
List<YuntuBase> yun_list = yuntuBaseService.selectYuntuBase(map);
logger.info("yun_list.size() : " + yun_list.size());
//成功
json.put("yun_list", yun_list);
json.put("returnCode", "000000");
json.put("returnMsg", "success");
return json;
} catch (Exception e) {
e.printStackTrace();
//插入数据库失败,返回失败码
json.put("returnCode", "111111");
json.put("returnMsg", "保存失败");
return json;
} }
第八种方式:
@RequestMapping(value="/selMessageById", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
@ResponseBody
public Object selMessageById(HttpServletRequest request) { AJAXResult result = new AJAXResult(); String id = request.getParameter("id");
logger.info("id = " + id);
try { Message message = messageService.selMessageById(Integer.parseInt(id.trim())); result.setData(message);
result.setSuccess(true);
result.setReturnCode("000000");
result.setReturnMsg("success"); } catch (Exception e) {
e.printStackTrace();
//查询数据库失败,返回失败码
result.setSuccess(false);
result.setReturnCode("111111");
result.setReturnMsg("系统异常");
logger.error("result = " + result);
return result;
} return result; }
AJAXResul代码如下:
package cn.pms.model; import java.util.Map; public class AJAXResult { private boolean success; //返回码
private String returnCode; //返回信息
private String returnMsg; //返回数据
private Object data; //数据
private Object datas; private Map<Object, Object> map; public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getReturnCode() {
return returnCode;
}
public void setReturnCode(String returnCode) {
this.returnCode = returnCode;
}
public String getReturnMsg() {
return returnMsg;
}
public void setReturnMsg(String returnMsg) {
this.returnMsg = returnMsg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Object getDatas() {
return datas;
}
public void setDatas(Object datas) {
this.datas = datas;
}
public Map<Object, Object> getMap() {
return map;
}
public void setMap(Map<Object, Object> map) {
this.map = map;
} }
常用AJAX请求后台数据的几种方式:
第一种:
var id = getQueryParam("id");
var zt = getQueryParam("zt");
var hotelNo = getQueryParam("hotelNo");
//alert("id = " + id + "zt = " + zt);
$.post("/ssm_pms/selectRoomById", { id : id }, function (result){ if(result.returnCode == "000000" && result.returnMsg == "success"){ $("#RoomNo").val(result.room.roomNo);
$("#Status").val(result.room.roomStatus);
}else{
alert("connection error");
} });
第二种:
var data = {
floor : name,
hotel_no : "88"
} $.ajax({
url : "/ssm_pms/addFloor",
type : "POST",
contentType: 'application/json;charset=utf-8',
async : false,
data : JSON.stringify(data),
dataType : 'json',
success : function(result){
if(result.returnCode == "000000" && result.returnMsg == "success"){
//window.location.href = "";
closeWin();
alert("添加成功");
}else if(result.returnCode == "101011" && result.returnMsg == "重复,请重新输入"){
alert("重复,请重新输入");
}else{
//showTips(3, 'Name', data.State.Errkey);
alert("添加失败");
}
}
});
Ajax的get不常用,通常$.ajax够用了,有的时候常用的也就$.post,不过目前用的最多的还是$.ajax
前台返回json数据的常用方式+常用的AJAX请求后台数据方式的更多相关文章
- Ajax请求后台数据
一.前期准备 安装好XAMPP软件,并运行起来.本文代码是基于XAMPP开发环境,XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB.PHP和Perl.XAMPP开放源码包的设 ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- JS 操作 HTML 和 AJAX 请求后台数据
为某个元素插入值,添加属性,添加子元素 <div class="col-sm-6"> <select class="form-control" ...
- ajax 请求后台数据返回异常 及 提示404方法名不存在
1.正常使用 Ajax 调取后台数据时,提示方法名不存在,Ajax前端正常,方法类bean注入正常,方法注解正常.但参数解析时出现异常. @RequestMapping(value="/ge ...
- C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
- 【Java框架型项目从入门到装逼】第六节 - 用ajax请求后台数据
这一节我们来说一下如何用ajax提交请求? 我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <!-- 采用post表单提交 --> <for ...
- jQuery Ajax请求后台数据并在前台接收
1.ajax基本语法 <script> $(function(){ $('#sub').click(function(){ var username=$('#username').val( ...
- 用Ajax请求后台数据
我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <%@ page language="java" contentType=" ...
- js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台
setInterval(function(){//ajax 请求后台数据},1000);这个是A页面的定时器然后我在A页面通过其他请求跳转到其他页面之后后台发现A页面的定时器的那个请求仍然在执行为什么 ...
随机推荐
- 快速排序 java详解
1.快速排序简介: 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此 ...
- 表数据量影响MySQL索引选择
现象 新建了一张员工表,插入了少量数据,索引中所有的字段均在where条件出现时,正确走到了idx_nap索引,但是where出现部分自左开始的索引时,却进行全表扫描,与MySQL官方所说的最左匹配原 ...
- 每个JavaScript工程师都应懂的33个概念
摘要: 基础很重要啊! 原文:33 concepts every JavaScript developer should know 译文:每个 JavaScript 工程师都应懂的33个概念 作者:s ...
- InheritParasitic.js
// 寄生式继承 // 其基本思路是类似创建对象时的工厂模式,将继承过程封装在一个函数里,然后返回一个对象 function createObject(o){ var clone = Object.c ...
- meta的日常设置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python之 协程
协程: 协程是一种用户态的轻量级线程, 即协程是由用户程序自己控制调度的 1.Greenlet import time # import greenlet from greenlet import g ...
- python之常用模块补充
namedtuple 命名元组 ->类似创建了一个类 from collections import namedtuple p = namedtuple("point", [ ...
- MySQL主从复制--原理
简介 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一 ...
- 关于CSS的一些基础内容
最近用到了CSS,刚好学学.CSS(Cascading Style Sheet)中文名层叠样式表,用于为html文档添加样式控制,也是一种计算机语言. 一.CSS语法a)CSS规则由选择器和声明组成, ...
- Vlc支持IE 360 低版本的Google浏览器
VLC 插件代码: <object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" ...