前台返回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页面的定时器的那个请求仍然在执行为什么 ...
随机推荐
- ASP.NET Identity 二 (转载)
来源:http://www.cnblogs.com/r01cn/p/5180892.html#undefined 推荐看原文,这里转载是怕好文章消失了. 注:本文是[ASP.NET Identity系 ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- Centos7下开启80端口
firewall-cmd --zone=/tcp --permanent 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 -- ...
- ios --键盘监听JYKeyBoardListener
没有前言,就是一个简单的键盘监听,自动调整输入框的位置不被键盘遮挡 .h // // JYKeyBoardListener.h // // Created by JianF.Sun on 17/9/2 ...
- Java框架之Struts2(五)
本文主要介绍Struts2 文件上传.Struts2 多文件上传.文件下载.上传文件的过滤.输入校验.输入校验的流程. 一.Struts2 文件上传 步骤: 1) 页面 <form action ...
- Linux常用基本命令:三剑客命令之-awk内置变量与自定义变量
AWK中,变量分为两种:内置变量与自定义变量. 常见的内置变量有: FS:输入字段分隔符, 默认为空白字符 OFS:输出字段分隔符, 默认为空白字符 RS:输入记录分隔符(输入换行符), 指定输入时的 ...
- cookie、localStorage、sessionStorage的区别
localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 共同点:sessionStorage.localStorage和cooki ...
- html一些标签在不同浏览器或者不同版本浏览器的注意事项
最近在IE10下运行一个以前的做web系统发现了两个小问题: 一.图片上使用"alt"属性来添加一些文字提示信息在IE10下无法正常显示出来 上网查了一下原因:原来是现在一 ...
- 二层协议--STP协议总结
生成树协议的技术实现与配置注意点 一.stp协议的用途 二.stp协议的运行机制 三.stp协议规范
- Docker 加速器设置
在部署完docker的时候我们需要进行在镜像源下载镜像的时候有时候会出现特别慢的情况(这是因为本地到源的网络出现了问题),这时候就需要使用加速器来对镜像进行下载了,在面咱们就聊一聊docker加速器的 ...