我个人开发常用的如下所示:
之所以像下面这样下,一是前台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