SrpingBoot与SpringMvc框架接收页面AJAX请求方式
一、当页面请求AJAX使用JSON格式发请求后台,
如下代码
var reqMap = {};
reqMap.gsid = gsid;
reqMap.xlid = xlid;
$.ajax({
url : zd_basePath + '/queryXljczc',
type : 'POST',
dataType : 'json',
data :JSON.stringify(reqMap),
contentType: 'application/json;charset=utf-8',
success : function(data) {
// data = JSON.parse(data);
if(data.xljczc!=null){
loadData(data);
}else{
$.messager.alert('提示', '没有请求数据,换一下筛选条件试试!');
}
},
error : function() {
$.messager.alert('提示', '请求失败!');
}
});
重点说明:
data必须使用JSON.stringfy()方法进行对象转换
contentType 一定要同代码中所写
由于是模拟JSON请求后台服务控制层接收代码一定如下:
@RequestMapping(value = "/queryXljczc", method = { RequestMethod.POST, RequestMethod.GET })
@ResponseBody
public Object queryXljczc(@RequestBody Map<String,Object> queryParm) throws Exception{
Map<String,Object> weekList = klfxService.queryXljczc(queryParm);
String resultMap = JSONObject.toJSONString(weekList);
return weekList;
}
@RequetBody 注解接收前台入参对象才会获取成功
@ResponseBody 如果是@RestController 就可以省略
二、如果请求使用AJAX模拟表单提交的方式请求可能会更简便一点,
同时请求的AJAX会有不同代码如下:
var reqMap = {};
reqMap.gsid = gsid;
reqMap.xlid = xlid;
$.ajax({
url : zd_basePath + '/queryXljczc',
type : 'POST',
data :reqMap,
success : function(data) {
// data = JSON.parse(data);
if(data.xljczc!=null){
loadData(data);
}else{
$.messager.alert('提示', '没有请求数据,换一下筛选条件试试!');
}
},
error : function() {
$.messager.alert('提示', '请求失败!');
}
});
后台服务接收获取参数对应也有变化
@RequestMapping(value = "/queryXljczc", method = { RequestMethod.POST, RequestMethod.GET })
@ResponseBody
public Object queryXljczc(@RequestParam Map<String,Object> queryParm) throws Exception{
Map<String,Object> weekList = klfxService.queryXljczc(queryParm);
String resultMap = JSONObject.toJSONString(weekList);
return weekList;
}
@RequetBody 需要换成@RequestParam
以上就是测试@RequestParam与@RequestBody 接收AJAX不同方式请求的变化。