SpringMVC之接收请求参数和数据回显

1. 接收请求参数

1.1 传统传参

1.1.1 传入的参数名与形参相同

直接参数名传
http://localhost:8080/user/t3?name=zhangsan

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/t1")
    public String test1(String  name) {
        //前端接收参数
        System.out.println("接收的参数为:"+name);
        return "hello";
    }
}

1.1.2 传入的参数名与形参不相同

@RequestParam:规定前端用什么参数传入
http://localhost:8080/user/t3?username=zhangsan

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/t2")
    public String test2(@RequestParam("username") String  name) {
        //前端接收参数
        System.out.println("接收的参数为:"+name);
        return "hello";
    }
}

1.1.3 传入的参数为对象

http://localhost:8080/user/t3?id=1&name=zhangsan&pwd=123456

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/t3")
    public String test3(User user) {
        //前端接收参数
        System.out.println("接收的参数为:"+user);
        return "hello";
    }
}

1.2 Restful风格

1.2.1 传入的参数必须与形参相同

@PathVariable:传入的参数必须与形参相同

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/t4/{name}")
    public String test4(@PathVariable String name) {
        //前端接收参数
        System.out.println("接收的参数为:"+name);
        return "hello";
    }
}

1.2.2 传入的参数为对象

http://localhost:8080/user/t3?id=1&name=zhangsan&pwd=123456
跟传统模式相同

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/t3")
    public String test3(User user) {
        //前端接收参数
        System.out.println("接收的参数为:"+user);
        return "hello";
    }
}

2. 数据回显

2.1 ModelAndView

@RequestMapping("/m1")
public String t4(ModelAndView modelAndView) {
   modelAndView.addObject("msg","m2");
   return "hello";
}

2.2 ModelMap

Mode1Map:继承了LinkedHashMap,所以他拥有LinkedHashMap的全部功能!

@RequestMapping("/m2")
public String t4(ModelMap map) {
    map.addAttribute("msg","m2");
    return "hello";
}

2.3 Model

Model:精简版(大部分情况,我们都直接使用Mode7)

@RequestMapping("/m3")
public String hello(Model model) {
    model.addAttribute("msg","model");
    return "hello";
}

对比

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

内容参考:https://www.bilibili.com/video/BV1aE41167Tu
仅用于学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值