一.案例现象
1.controller层
/**
* @author liujianfu
* @description controller中业务方法的集合参数获取,要将集合参数封装到一个pojo中才可以
* 参数属性名与请求参数名称一致,参数值会自动映射匹配
* @date 2021/1/10 22:14
* @param
* @return
*/
@RequestMapping("/bike6")
public String bike6(){
System.out.println("controller6:");
return "ajax";
}
/**
* @author liujianfu
* @description controller中业务方法的集合参数获取,要将集合参数封装到一个pojo中才可以
* 参数属性名与请求参数名称一致,参数值会自动映射匹配
* @date 2021/1/10 22:14
* @param
* @return
*/
@RequestMapping("/bike7")
@ResponseBody
public String bike7(@RequestBody List<User> userList){
for(User u:userList){
System.out.println("user:"+u.getUserName());
}
return "ok";
}
2.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script>
var userList=new Array();
userList.push({userName:"beijing",age:34});
userList.push({userName:"shanghai",age:89});
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/bike7",
data:JSON.stringify(userList),
contentType:"application/json;charset=utf-8",
success:function(result){
alert(result);
}
})
</script>
</head>
<body>
</body>
</html>
3.重启服务进行访问
二.解决办法
2.1在spring-mvc 配置文件中,设置开放静态资源的访问
<mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
<mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
<mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
2.2 启动服务再次访问
控制台:
可以看到,控制台打印输出controller层中输出的ajax页面提交的json数据