概述
- @RequestParam
GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的方法中的形参上
- get请求
@RequestMapping
@RestController
public class TestController {
@RequestMapping("/test")
public String test(@RequestParam("name") String userName, @RequestParam("password") String password) {
return userName + "-" + password;
}
}
-
post请求
form表单post方式提交时,有三种编码格式:
application/x-www-form-urlencoded:将表单内的数据转换为键值对
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息
text/plain:文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理
post请求时,在http请求头的Content-Type属性可以查看到上面的三种编码格式,该格式用于指定提交表单数据到服务器的编码格式
- 当post提交的编码格式为application/x-www-form-urlencoded时,@RequestParam直接接收
- 当post提交的编码格式为multipart/form-data时,@RequestParam直接接收,因为multipart/form-data即可上传文件,也可以上传键值对
@RequestMapping
@RestController
public class TestController {
@PostMapping("/test")
public String test(@RequestParam("name") String userName, @RequestParam("password") String password) {
return userName + "-" + password;
}
}
3.总结
(1)RequestParam实质是将HttpServletRequest.getParameter() 中的Key-Value参数Map利用Spring的转化机制ConversionService配置,转化成参数接收对象或字段。
(2)可以不使用@RequestParam注解,而直接接收,此时要求controller方法中的参数名称要跟form标签中name名称一致
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RequestMapping
@RestController
public class TestController {
@PostMapping("/test")
public String test(String userName, String password, HttpServletRequest request) {
return userName + "-" + password+"-request:"+request.getParameter("userName");
}
}
最后
以上就是甜美烤鸡为你收集整理的SpringMVC常用注解-@RequestParam的全部内容,希望文章能够帮你解决SpringMVC常用注解-@RequestParam所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复