设为首页 加入收藏

TOP

SpringBoot Controller
2023-07-25 21:38:58 】 浏览:31
Tags: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请求";
    }
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇关于JAVA泛型数组类型擦除引发的.. 下一篇面试官:@Configuration 和 @Comp..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目