欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot controller接收参数

程序员文章站 2022-03-16 09:00:31
...

文章参考

  1. SpringBoot 获取前端页面参数的集中方式总结
  2. Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解

案例说明

@RequestBody接受Map<String, String>

@PostMapping(path = "/demo1")
public void demo1(@RequestBody Map<String, String> person) {
    System.out.println(person.get("name"));
}

表单名与controller参数名一致

@RequestMapping("/test1")
@ResponseBody
public String test1( String name, String pwd )
{
    String s1 = name;
    String s2 = pwd;
    String s1 + s2; 
}

HttpServletRequest获取表单参数

@RequstMapping("/test2")
@ResponseBody
public String test2( HttpServletRequest request )
{
     String firstName = request.getParamenter("firstName");
     String lastName = request.getParameter("lastName");
     return firstName = lastName; 
}

参数使用javaBean对象来接收

@RequestMapping("/test3")
@ResponseBody
public String test3( Student student )
{
   String firstName = student.getFirstName();
   String lastName = student.getLastName();
    return firstName = lastName; 
}

RestFul方式@PathVariable获取参数

@RequestMapping( value = "/test4/{a}/{bbb}")
@ResponseBody
public String test4( @PathVariable("a") String aaa, @PathVariable String bbb )
{
    return aaa+bbb;
}

@RequestParam获取

@RequestMapping( value = "/test5")
@ResponseBody
public String test5( @RequestParam("aaa") String aac,@RequstParam("bbb") String bbb)
{
    return aac+bbb;
}

@RequestHeader获取header中的数据

@GetMapping("/demo3")
public void demo3(@RequestHeader(name = "myHeader") String myHeader,
        @CookieValue(name = "myCookie") String myCookie) {
    System.out.println("myHeader=" + myHeader);
    System.out.println("myCookie=" + myCookie);
}

注解解释

@ResponseBody呢?

  • @ResponseBody是作用在方法上的
  • @ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】
  • 在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中
  • 异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据
  • @RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

@GetMapping

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。

@PostMapping

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。

@RequestHeader 注解

可以把Request请求header部分的值绑定到方法的参数上。

@CookieValue

可以把Request header中关于cookie的值绑定到方法的参数上。

@RequestMapping("/displayHeaderInfo.do")  
public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie)  {  
  //...  
}  

即把JSESSIONID的值绑定到参数cookie上。