SpringMVC-04-数据处理及回显

SpringMVC-04-数据处理及回显

1. 处理提交数据

1、提交的域名称和处理方法的参数名一致

  • 提交数据 :http://localhost/:8080/hello?name=zhuuu

  • 处理方法 :

1
2
3
4
5
@RequestMapping("/hello")
public String hello(String name){
System.out.println(name);
return "hello";
}
  • 后台输出:zhuuu

2、提交的域名称和处理方法的参数名不一致

  • 提交数据 : http://localhost:8080/hello?username=zhuuu
  • 记得这是一个好习惯,可以标注这是一个参数
  • @RequestParam : 可以将前端传进来的参数进行改名字
1
2
3
4
5
6
@RequestMapping("/hello")
// 将前端提交的username 转换成 name
public String hello(@RequestParam("username") String name){
System.out.println(name);
return "hello";
}

3、提交的是一个对象

  • 要求提交的表单域和对象的属性名一致 , 参数使用对象即可
    • 接收前端用户传送的参数,判断参数的名字,参数就可以直接使用对象
  1. 实体类
1
2
3
4
5
6
7
8
public class User {
private int id;
private String name;
private int age;
//构造
//get/set
//tostring()
}
  1. 提交数据 : http://localhost:8080/mvc04/user?name=zhuuu&id=1&age=15
  2. 处理方法
1
2
3
4
5
@RequestMapping("/user")
public String user(User user){
System.out.println(user);
return "hello";
}
  • 后台输出:User(id=1,name=”zhuuu”,age=15)

  • 说明:如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null。

2. 数据显示到前端

第一种 : 通过ModelAndView

  • 我们前面一直都是如此 . 就不过多解释
1
2
3
4
5
6
7
8
9
10
public class ControllerTest1 implements Controller {

public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ControllerTest1");
mv.setViewName("test");
return mv;
}
}

第二种 : 通过ModelMap

  • ModelMap
1
2
3
4
5
6
7
8
@RequestMapping("/hello")
public String hello(@RequestParam("username") String name, ModelMap model){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("name",name);
System.out.println(name);
return "hello";
}

第三种 : 通过Model

  • Model
1
2
3
4
5
6
7
8
@RequestMapping("/ct2/hello")
public String hello(@RequestParam("username") String name, Model model){
//封装要显示到视图中的数据
//相当于req.setAttribute("name",name);
model.addAttribute("msg",name);
System.out.println(name);
return "test";
}

2.1 model/modelAndView/modelMap 对比

1
2
3
4
5
Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;

ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;

ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
  • 通常现在实现:返回的数据可以用JSON实现
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信