SpringBoot Controller

SpringBoot Controller

控制器

  • SpringBoot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。
  • 如果请求的是页面和数据,使用@Controller注解即可;如果只是请求数据,则可以使用@RestController注解。

@RestController的用法

  • 默认情况下,@RestController注解会将返回的对象数据转换成JSON格式。

路由映射:控制器接收前端的请求

  • @RequestMapping注解主要负责URL的路由映射。它可以添加在Controller类或者具体的类方法上。
  • @RequestMapping(value="/xxx", method=RequestMethod.GET)等价于@GetMapping("/xxx")

参数传递

  • Get方式
@RestController //加上这个注解意味着这个类已经变成一个控制器了,可以接收客户端的请求了
public class HelloController {

    //  http://localhost:8080/hello?nickname=小白  单个参数
    // http://localhost:8080/hello?nickname=小白&phone=10086  多个参数情况
    @RequestMapping("/hello")                  //这个注解代表之后浏览器发起Get请求之后来访问这个方法
    public String hello(String nickname){
        return "hello!"+nickname;
    }


}

上面这个方法的参数名要与前端请求的参数名称一致。或者也可以不一致,但是要在方法头里面加上:

@RequestParam("nickname") //这个nickname与前端请求的参数名称一致,然后后端方法的参数名称可以任意。但是这种情况下参数一定要传递(也可以不传递,此时可写成@RequestParam(value="nickname", required=false)),否则此方法将不会被访问。前一种方式方法是可以被访问到的。

@RestController //加上这个注解意味着这个类已经变成一个控制器了,可以接收客户端的请求了
public class HelloController {

    //  http://localhost:8080/hello?nickname=小白  单个参数
    // http://localhost:8080/hello?nickname=小白&phone=10086  多个参数情况
    @RequestMapping("/hello")                  //这个注解代表之后浏览器发起Get请求之后来访问这个方法
    public String hello(@RequestParam("nickname") String nickname){
        return "hello!"+nickname;
    }
}
  • Post方式

method = RequestMethod.POST

如果前端传递的数据是json格式,那么需要在方法头中加上@RequestBody,如下:

传参格式:(前后端参数名字及类型要一致)

{

"name": "zhangsan",

"pwd": "123"

}

@RequestMapping(value = "/postTest2", method = RequestMethod.POST)
    public String postTest2(@RequestBody User user){//注解在这里!!!
        System.out.println(user.getName());
        System.out.println(user.getPwd());
        return "Post请求2";
    }

普通情况:前后端参数名要一致

@RequestMapping(value = "/postTest1", method = RequestMethod.POST)
    public String postTest1(User user){
        System.out.println(user.getName());
        System.out.println(user.getPwd());
        return "Post请求";
    }

热门相关:骑士归来   时间都知道(唐嫣、窦骁、杨烁主演)   寂静王冠   薄先生,情不由己   夺命色诱