我用spring mvc做,用post方式提交,后台获取不到参数值,用get方式就可以,什么问题

前台请求参数代码:vardata={"id":"1","name":"2"};$.ajax({url:"${pageContext.request.contextPath... 前台请求参数代码:
var data={"id":"1","name":"2"};
$.ajax({
url: "${pageContext.request.contextPath}/business/chgSort.do",
data:data,
dataType:"json",
type: "post",
contentType:"application/json;charset=utf-8",
后台接收代码:
@RequestMapping(value = "/chgSort",method=RequestMethod.Post)
public void chgSort(@RequestBody User user,HttpServletResponse response) throws Exception{
省略

}

其中id和name是User的属性。求大神搭救啊
展开
 我来答
西西哩的小马甲
2018-04-16 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.8万
展开全部

因为form表单的enctype编码方式不同导致的;enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码。如果使用GET,则强制使用application/x-www-form-urlencoded"方式。我代码里强制使用了multipart/form-data方式,所以SpringMVC中获取不到POST形式的参数

spring mvc如果要接收 multipart/form-data 传输的数据,应该在spring上下文配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">       
</bean>

并将commons-fileupload-1.2.1.jar和commons-io-2.5.jar包引入到项目中

这样服务端就既可以接收multipart/form-data 传输的数据,也可以接收application/x-www-form-urlencoded传输的文本数据了。

175339137
2013-10-08
知道答主
回答量:6
采纳率:0%
帮助的人:7.5万
展开全部
@RequestBody需要设置contentType为application/json并且data是json字符串, var data='{"id":"1","name":"2"}'; 试试这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三月讲故事J
2018-11-13
知道答主
回答量:2
采纳率:0%
帮助的人:2130
展开全部

Spring Boot入门篇-@RequestParam/@RequestBody配置:网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingqianqian2
2013-09-27 · 超过15用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:37.7万
展开全部
@RequestMapping("/chgSort")
public void chgSort(HttpServletRequest request, Model model) {
Long id= Long.valueOf(request.getParameter("id"));你试下这个
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式