一、案例现象
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数据
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论