
因为form表单的enctype编码方式不同导致的;enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
默认地,表单数据会编码为 "application/x->
SpringMVC中处理请求参数有好几种不同的方式,如我们常见的下面几种
对上面几种方式有兴趣的可以看一下这篇博文: SpringMVC之请求参数的获取方式
除了上面的几种方式之外,还有一种 @RequestBody 的使用方式,本文则主要介绍这种传参的使用姿势和相关注意事项
借助Spring框架,使用@RequestBody并没有什么难度,很简单的就可以写一个使用case出来,如下
看上面的实现,和我们通常的写法并无差别,无非是将以前的 @RequsetParam 注解换成 @RequsetBody 注解,而且这个注解内部只有一个filed,比RequsetParam还少
看到上面的实现,估计也可以猜出,这个注解对于后端而言,写没啥问题,关键是如何用(具体来讲是如何给前端用)
上面写完了,接下来的重点就是如何使用了,在使用之前,有必要了解下 RequestBody 这个注解出现的原有以及应用场景(换句话说它和RequestParam有什么区别,为什么要单独地搞一个这个东西出来)
RequestBody
a content-type定义
在进入下一步之前,有必要说一下Content-Type这个>
使用Springboot,我们很多时候直接使用@PathVariable、@RequestParam、@Param来获取参数,但是偶尔还是要用到request和response,怎么获取呢?
也很方便,有三种方式可以获取,任选其一就行。
1、通过静态方法获取,你也可以封装一个静态方法出来
2、通过参数直接获取,只要在你的方法上加上参数,Springboot就会帮你绑定,你可以直接使用。如果你的方法有其他参数,把这两个加到后面即可。
3、注入到类,这样就不用每个方法都写了
面些例说明
使用@RequestParam绑定请求参数值
@RequestMapping(value="/method1") public String method1( @RequestParam(value="userName",required = false) String userName, @RequestParam("pwd") String pwd){ return "methodSignature"; }
@RequestParam参数三:
使用数组或者List让@RequestParam接收同名参数
public String requestparam(@RequestParam(value="role") String roleArray)
public String requestparam(@RequestParam(value="role") List roleList)
value:参数名字即入参请求参数名字username表示请求参数区名字username参数值传入;
required:否必须默认true表示请求定要相应参数否则报404错误码;
defaultValue:默认值表示请求没同名参数默认值默认值SpEL表达式逗#{systemProperties[‘javavmversion’]}
使用@CookieValue绑定请求Cookie值
@CookieValue参数@RequestParam
第二种绑定javaxservlet>
以上就是关于我用spring mvc做,用post方式提交,后台获取不到参数值,用get方式就可以,什么问题全部的内容,包括:我用spring mvc做,用post方式提交,后台获取不到参数值,用get方式就可以,什么问题、重磅来袭:Spring之RequestBody的使用姿势小结、Springboot获取request和response等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)