RestFul风格
@Controller
public class RestFulController {
/**RestFul风格*/
@RequestMapping(value = "/add/{a}/{b}")
public String test1(@PathVariable int a,@PathVariable int b, Model model){
int res = a+b;
model.addAttribute("msg","结果为:"+res);
return "test";
}
}
使用路径变量的好处?
- 使路径变得更加简洁。
- 获得参数更加方便
- 通过路径变量的类型可以约束访问参数,如果类型不一样。则访问不到对应的请求方法,如这里访问的路径是、commit/1/a,则路径方法不匹配,二不会是参数转换失败。
重定向和转发
@Controller
public class ModelTest1 {
@GetMapping(value = "/m1/t1")
public String test1(Model model){
model.addAttribute("msg","你好啊!");
//转发
return "forward:/WEB-INF/jsp/test.jsp";
//重定向
//return "redirect:/indext.jsp";
}
}
接受请求参数及回显
/**
* @RequestParam("username")
* @PathVariable @RequestMapping(value = "/t1/{name}")
* */
@RequestMapping(value = "/t1")
public String test1(@RequestParam("username") String name, Model model){
//1、接受前端的参数
System.out.println("name:"+name);
//2、将参数传给前端
model.addAttribute("msg",name);
//视图跳转
return "test";
}
对比
**Model:**只有寥寥几个方法只适合用于存储数据,简化了新手对于model1对象的操作和理解。
**ModelMap:**继承了LinkMap,除了实现自身的一些方法,同样的继承了LinkMap的方法和特性。
**ModelAndView:**可以存储数据的同时,可以经i选哪个设置反网的逻辑试图,景行控制显示层的跳转。