SpringMVC学习11:接收请求参数及数据回显

SpringMVC学习11:接收请求参数及数据回显

  • SpringMVC接收请求参数:

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

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

      • 处理方法:

        //http://localhost:8080/sayhello?name=demo
        @RequestMapping("/hello")
        public String sayHello(String name){
           System.out.println(name);
           return "hello";
        }


        //http://localhost:8080/sayhello/demo222
        @RequestMapping("/sayhello/{name}")
        public String sayHello(@PathVariable String name, Model model){
           //1,接收前端参数
           System.out.println(name);
           //2,将结果返回给前端:Model
           model.addAttribute("msg",name);
           //3,跳转视图
           return "test";
        }

         

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

      • http://localhost:8080/sayHello1?username=demo333

      • 处理方法:

        //http://localhost:8080/sayHello1?username=demo333
        //@RequestParam("username"):username是提交的域的名称
        @RequestMapping("/sayHello1")
        public String sayHello1(@RequestParam("username") String name){
           System.out.println(name);
           return "test";
        }

        //http://localhost:8080/sayhello1/demo4444
        @RequestMapping("/sayhello1/{username}")
        public String sayHello1(@PathVariable("username") String name){
           //1,接收前端参数
           System.out.println(name);
           //2,将结果返回给前端:Model
           model.addAttribute("msg",name);
           //3,跳转视图
           return "test";
        }

       

    • 3,提交的是一个对象:

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

      • 提交数据:http://localhost:8080/mvc04/user?name=kuangshen&id=1&age=15

      • 处理方法:

        //如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null
        //http://localhost:8080/sayhello2?id=1&name=demo55&pwd=333333
        @RequestMapping("/sayhello2")
        public String sayHello2(@PathVariable() User user){
               /**
                * 1,接收前端用户传递的参数,判断参数的名字,假设名字直接在方法上,可以直接使用;
                * 2,假设传递的是一个对象,匹配对象中的字段名,如果名字一致,则ok,否则为Null;
                */

           System.out.println(user);
           return "test";
        }

         

 

 

  • SpringMVC数据回显到前端:

    • 第一种:通过ModelAndView

      @RequestMapping("/sayhello1/{username}")
      public ModelAndView sayHello1(@PathVariable("username") String name){
         ModelAndView mv=new ModelAndView();
         mv.addObject("msg",name);
         mv.setViewName("test");
         return mv;
      }
    • 第二种:通过ModelMap

      @RequestMapping("/sayhello/{name}")
      public String sayHello(@PathVariable String name, ModelMap model){
         //1,接收前端参数
         System.out.println(name);
         //2,将结果返回给前端:Model
         model.addAttribute("msg",name);
         //3,跳转视图
         return "test";
      }
    • 第三种:通过Model

      @RequestMapping("/sayhello/{name}")
      public String sayHello(@PathVariable String name, Model model){
         //1,接收前端参数
         System.out.println(name);
         //2,将结果返回给前端:Model
         model.addAttribute("msg",name);
         //3,跳转视图
         return "test";
      }

       

  • 对比:

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

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

    • ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。

 

 

 

 

posted @   gzs1024  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示