欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
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