我个人开发常用的如下所示:

之所以像下面这样下,一是前台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请求后台数据方式的更多相关文章

  1. Ajax请求后台数据

    一.前期准备 安装好XAMPP软件,并运行起来.本文代码是基于XAMPP开发环境,XAMPP是完全免费且易于安装的Apache发行版,其中包含MariaDB.PHP和Perl.XAMPP开放源码包的设 ...

  2. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  3. JS 操作 HTML 和 AJAX 请求后台数据

    为某个元素插入值,添加属性,添加子元素 <div class="col-sm-6"> <select class="form-control" ...

  4. ajax 请求后台数据返回异常 及 提示404方法名不存在

    1.正常使用 Ajax 调取后台数据时,提示方法名不存在,Ajax前端正常,方法类bean注入正常,方法注解正常.但参数解析时出现异常. @RequestMapping(value="/ge ...

  5. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  6. 【Java框架型项目从入门到装逼】第六节 - 用ajax请求后台数据

    这一节我们来说一下如何用ajax提交请求? 我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <!-- 采用post表单提交 --> <for ...

  7. jQuery Ajax请求后台数据并在前台接收

    1.ajax基本语法 <script> $(function(){ $('#sub').click(function(){ var username=$('#username').val( ...

  8. 用Ajax请求后台数据

    我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <%@ page language="java" contentType=" ...

  9. js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台

    setInterval(function(){//ajax 请求后台数据},1000);这个是A页面的定时器然后我在A页面通过其他请求跳转到其他页面之后后台发现A页面的定时器的那个请求仍然在执行为什么 ...

随机推荐

  1. [PHP] 算法-二叉树的子结构判断的PHP实现

    输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 1.子树的意思是包含了一个节点,就得包含这个节点下的所有节点,两棵树同时到底 2.子结构可以是A树的任意一部 ...

  2. 【读书笔记】iOS-iOS AirPlay与AppleTV

    享受高清晰影院般的大屏幕电影带来的快乐,单纯的iOS设备实现这些是不可能的.苹果有一套解决方案,iOS设备把这些视频和音效数据无线传输(WiFi或蓝牙)Apple TV,然后由Apple TV将视频和 ...

  3. ionic3用极光推送笔记

    安卓 环境:ionic3  + 极光 "jpush-phonegap-plugin": "^3.4.3" "cordova-plugin-jcore& ...

  4. .Net Core(完) 创建Docker镜像

    使用Docker可以在操作系统上分出多个独立的区域(容器/Container),各个容器之间基本隔离,且可以有自己单独的系统配置.软件等,各个容器之间的软件基本不会互相干扰.Docker上配置好的容器 ...

  5. 如何将 asp.net core 应用进行 docker 容器部署

    asp.net core 部署在 docker 容器中比较简单,但常因asp.net core程序发布的问题造成容器无法正常启动.现在把详细的操作的步骤记录如下: 一.asp.net core web ...

  6. 洗礼灵魂,修炼python(11)--python函数,模块

    前面的章节你如果看懂了,基本算是入门了七八了,不过如果你以为python就这么点东西,你觉得很简单啊,那你就错了,真正的东西在后面,前面我说的几大核心其实也不是多么高深多么厉害的,那些东西是基础很常用 ...

  7. sql server全文索引使用中的小坑 (转载)

    一.业务场景 我们在实际生产环境中遇到了这样一种需求,即需要检索一个父子关系的子树数据 估计大家也遇到过类似的场景,最典型的就是省市数据,其中path字段是按层级关系生成的行政区路径: 如果我们已知某 ...

  8. Javascript 高级程序设计--总结【一】

    文档模式 混杂模式 标准模式 js 数据类型 Undefined Null  看做是一种空对象的引用 Boolean Number String Object typeof 返回类型 "un ...

  9. Django电商项目---完成商品主页显示day2

    利用DjangoAdmin初始化数据库 创建项目 python manage.py startapp df_goods 添加配置 manas/urls.py manas/settings.py 新创建 ...

  10. Centos7下crontab+shell脚本定期自动删除文件

    问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...