前台返回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; }
第四种方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | @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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述