1. 处理提交数据
提交的名称和方法的参数名一致
//localhost:8080/user/t1?name=xxx;
@GetMapping("/t1")
public String test1(String name, Model model){
//1.接收前端参数
System.out.println("接收到前端的参数为:" + name);
//2.将返回的结果传递给前端
model.addAttribute("msg", name);
//3.跳转视图
return "test";
}
提交的名称和方法的参数名不一致
//加上@RequestParam("username")就知道是从前端接收过来localhost:8080/user/t1?username=xxx;。此时必须要通过username识别
@GetMapping("/t1")
public String test1(@RequestParam("username") String name, Model model){
//1.接收前端参数
System.out.println("接收到前端的参数为:" + name);
//2.将返回的结果传递给前端
model.addAttribute("msg", name);
//3.跳转视图
return "test";
}
提交一个对象
//前端接收的是一个对象:id, name, age
//localhost:8080/user/t1?id=1&name=xxx&age=2;
/*
* 1.接收前端用户传递的参数,判断参数的名字,假设名字直接在方法上可以直接使用
* 2.假设传递的是一个对象User,匹配User对象中的字段名:如果名字一致则ok。否则匹配不到
*
* */
@GetMapping("/t2")
public String test2(User user){
System.out.println(user);
//3.跳转视图
return "test";
}
使用对象,前端传递的参数名和对象名必须一致,否则为空。
2. 数据显示到前端
2.1 ModelAndView
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg","ControllerTest1");
modelAndView.setViewName("test");
return modelAndView;
}
2.2 Model
@RequestMapping("/t2")
public String test(Model model){
model.addAttribute("msg", "ControllerTest2");
return "test";
}
2.3 ModelMap
@GetMapping("/t3")
public String test3(@RequestParam("username") String name,Model map){
map.addAttribute("name",name);
return "test";
}
对比:
ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
ModelMap 继承了 LinkedHashMap ,除了实现了自身的一些方法,同样的继承 LinkedHashMap 的方法和特性;
Model 少数方法适合用于储存数据,简化了新手对于Model对象的操作和理解;大部分情况下直接使用Model
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64942.shtml