SpringMVC中的数据处理

学习目标:

数据处理(接收请求及数据回显)


学习内容:

数据处理(接收请求及数据回显)


学习时间:


学习产出:

数据处理(接收请求及数据回显)

处理提交数据

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

处理方法:

@Controller
public class UserController {
    @RequestMapping("/test1")
    public String test1(String name){
        System.out.println(name);
        return "test";
    }
}

后台输出null

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

处理方法:

@Controller
public class UserController {
    @RequestMapping("/test1")
    //加上@RequestParam注解,可以处理参数名不一致,username为提交的域名称
    public String test1(@RequestParam("username") String name){
        System.out.println(name);
        return "test";
    }
}

控制台输出:dasda

  • 3、提交的是一个对象

要求提交的表单域和对象的属性名一致 , 参数使用对象

创建一个pojo包然后创建一个User类,导入Lombok

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String name;
    private int age;
    private int id;
}

UserController类代码修改为:

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping("/test1")
    public String test1(User user){
        //1、接收前端参数
        System.out.println(user);
        //2、将返回的结果传递到前端,
        //model.addAttribute("msg",name);
        //3、跳转视图
        return "test";
    }
}

访问:http://localhost:8080/user/test1?name=张三,age=11,id=31231

控制台输出:User(name=张三,age=11,id=31231, age=0, id=0)

使用对象的话,前端传递的参数名和对象名必须一致,否则后台显示null。

将数据显示到前端

  • 方式一:使用ModelAndView
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("msg","Controller");
        modelAndView.setViewName("test");
        return modelAndView;
    }
  • 方式二:通过ModelMap
/*
        ModelMap:继承了LinkedHashMap,拥有LinkedHashMap的全部功能
        Model:精简版
     */
    @GetMapping("/test2")
    public String test1(@RequestParam("username") String name,ModelMap modelMap){
        //modelMap封装视图中的数据,相当于request.setAttribute("name",name);
        modelMap.addAttribute("msg",name);
        System.out.println(name);
        return "test";
    }

访问:http://localhost:8080/user/test2?username=%E5%BC%A0%E4%B8%89

前端及控制台都显示:张三

  • 方式三:通过Model
@GetMapping("/test3")
    public String test3(@RequestParam("username") String name,Model model){
        //modelMap封装视图中的数据,相当于request.setAttribute("name",name);
        model.addAttribute("msg",name);
        System.out.println(name);
        return "test";
    }

简单区别:

  • Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
  • ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
  • ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值