Springboot Controller 1.Web依赖整合了mvc、json、tomcat等框架,简化了Web应用的配置 2.用户向Controller发送请求,从数据库中获取到的数据存在Model中 当用户发出请求后,Controller向Model请求数据,响应之后返回到View ,通过HTTP响应给用户,这就是MVC 有个区别记录一下 @RestController和@Controller的区别 @RestController用于单纯请求数据,返回的是数据 @Controller用于请求页面和数据,这意味着你返回的必须是一个页面 因此不适合前后端分离的开发,因此在老师的课程中主要提及的还是前者 在默认情况下,@RestController会把返回的数据转会为JSON格式 控制器如何接收前端请求? 通过路由映射 即@RequestMapping,这个注解负责做URL的路由映射 可以放到Controller类或者方法上 例如 RequestMapping("/hello"); 其中有一个value属性说一下 value属性用于请求URL的路径 例如RequestMapping("/user") 也可以是多级的 然后单独解释一下RequestMapping("/getJson/*.json") 一个*代表 只要是在getJson下的任意名称的.json文件可以进行映射 如果是**则匹配任意路径。 Method匹配 @RequestMapping可以规定访问的方法,例如规定GET方法等 @RequestMapping(value = "/hello",method = RequestMethod.GET) 当你这么规定了之后,只有GET请求才可以访问该方法 它等价于 @GetMapping("/hello") 前端内容的接收 可以在访问的时候通过问号给值,例如访问localhost:8080/hello ?nickname = zhangsan 这表示访问hello的时候提供了一个参数nickname,值为zhangsan 当这么做了之后页面是正常访问 @RequestParam 可以把请求的参数绑定到控制器的方法参数上 例如 @ResetController public class Controller test { @RequestMapping(value = "/hello",method = RequestMethod.GET) public String hello(String nickname) { return "你好" + nickname; } 当你传递的符号与请求的方法的参数一致时,会自动赋值 如果你有多个参数,可以使用&符号进行连接 } 当传递的参数和方法中定义的参数名称不一致时,可以使用@RequestParam注解 例如我前端传递了一个nickname而我方法中定义的参数名为name @RequestMapping(value = "/test",method = RequestMethod.GET) public String getTest(@RequestParam (value = "nickname") String name) { System.out.println("nickname :"+name); return "GET"; } 但是当你用了@RequestParam注解,说明这个name参数是必须的,就是说你必须传递一个名为nickname的参数,如果不传递就无法访问对应的方法。 错误400 如果希望不传递也可以,那可以添加一个另外的设置 required = "false" @RequestController public class Controller test { @RequestMapping(value = "/test",method = RequestMethod.GET) public String FalseTest(@RequestParam(value = "nickname",required = false)String name) { return "GET"; } POST方法不能通过浏览器访问,提供的软件是Apipost 如果通过POST传递参数,传递的参数必须要和封装中的属性名保持一致 }
标签:25,RequestMapping,GET,2024.09,value,Controller,参数,nickname From: https://www.cnblogs.com/dmx-03/p/18472330