博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前台返回json数据的常用方式+常用的AJAX请求后台数据方式
阅读量:4314 次
发布时间:2019-06-06

本文共 12233 字,大约阅读时间需要 40 分钟。

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

之所以像下面这样下,一是前台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
map = new HashMap
(); map.put("user", user); model.addAttribute("user", user); return JSON.toJSONString(map); } else { String msg = "{\"returnMsg\":\"不存在\"}"; Map
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
map = new HashMap
(); 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
rs = new ArrayList
(); 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
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
getAcs() { return acs; } public void setAcs(List
acs) { this.acs = acs; } }

 

第五种方式:

@RequestMapping(value = "/updateVersion", method = RequestMethod.POST, produces = "application/json;charset=utf-8")    @ResponseBody    public String updateHeadHotel(@RequestBody AppVersion appVersion) {        Map
map = new HashMap
(); 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
delectHotel(HttpServletRequest request) { Map
map = new HashMap
(); 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_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
map = new HashMap
(); 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
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
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
getMap() { return map; } public void setMap(Map
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

 

转载于:https://www.cnblogs.com/youcong/p/8710305.html

你可能感兴趣的文章
(转))iOS App上架AppStore 会遇到的坑
查看>>
解决vmware与主机无法连通的问题
查看>>
做好产品
查看>>
项目管理经验
查看>>
笔记:Hadoop权威指南 第8章 MapReduce 的特性
查看>>
JMeter响应数据出现乱码的处理-三种解决方式
查看>>
获取设备实际宽度
查看>>
Notes on <High Performance MySQL> -- Ch3: Schema Optimization and Indexing
查看>>
Alpha冲刺(10/10)
查看>>
数组Array的API2
查看>>
为什么 Redis 重启后没有正确恢复之前的内存数据
查看>>
No qualifying bean of type available问题修复
查看>>
第四周助教心得体会
查看>>
spfile
查看>>
Team Foundation Service更新:改善了导航和项目状态速查功能
查看>>
WordPress资源站点推荐
查看>>
Python性能鸡汤
查看>>
android Manifest.xml选项
查看>>
Cookie/Session机制具体解释
查看>>
ATMEGA16 IOport相关汇总
查看>>