代码
package com.jay.controller; import com.jay.pojo.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; //使用注解自动装配 @Controller //一级目录,这个Controller下的所有视图访问的时候都要拼接/home public class HelloController { //访问路径 //@RequestMapping("/hello") @GetMapping("/hello/{a}/{b}")//get请求,restful风格的url //@PostMapping("/hello/{a}/{b}")//post请求 //restful风格的路径,简洁、高效(支持缓存)、安全(隐藏参数名) public String hello(@PathVariable int a, @PathVariable int b, Model model) { int c = a + b; model.addAttribute("c", c); //Model用来存储视图数据,jsp页面可以直接取出 model.addAttribute("msg", "Hello SpringMVCAnnotation!"); // return "hello";//视图名 //没有视图解析器时,用下面三种方法跳转 // return "/WEB-INF/view/hello.jsp";//视图路径 // return "forward:/WEB-INF/view/hello.jsp";//转发 return "redirect:/test";//重定向到指定的url // return "redirect:/index.jsp";//重定向到指定的jsp页面 //注意路径,斜杠/直接到webapp目录下 } //http://localhost:9091/hello/1/2 @RequestMapping("/test") public String test(Model model) { model.addAttribute("msg", "test xxxxxx"); // return "/WEB-INF/view/test.jsp";//没有视图解析器的方式 return "test"; } //如果多个视图,写多个hello这样的方法就可以了,不用每个都写一个servlet。 @RequestMapping("/test1") public String test1(@RequestParam("username") String username, Model model) { //@RequestParam配置前端参数只能传username,否则报错 model.addAttribute("msg", username); return "test1"; } //http://localhost:9091/test2?age=19&id=1&username=jay @RequestMapping("/test2") public String test2(User user, Model model) { //使用对象接收前端参数,会自动绑定到user对应的属性中 model.addAttribute("msg", user.toString()); return "test2"; } }