zoukankan      html  css  js  c++  java
  • 前台返回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

  • 相关阅读:
    算法探究-2.retinaNet(Focal Loss)
    C++基础-枚举体 enum class
    C++基础-TypeTraits(进行类型的属性判断) 1.is_lvalue_reference(左值引用判断) 2.is_integral(整形判断) 3.is_class(基本类型判段) 4.is_same(判断类型一致) 5.enable_if(条件判断)
    C++基础-auto(自动分配属性)和decltype(指定分配属性)
    C++基础-正则实战(日期拆分regex_match ,符号拆分sregex_token_iterator, 邮箱的查找 regex_search)
    C++基础-正则表达式 regex_match(匹配) regex_search(查找) regex_replace(替换)
    Shell 入门(三):sed,awk,grep
    Shell 入门(二):数组与函数
    Shell 入门(一):变量和流程控制
    ArcSDE 版本差异提取
  • 原文地址:https://www.cnblogs.com/youcong/p/8710305.html
Copyright © 2011-2022 走看看