zoukankan      html  css  js  c++  java
  • spring接收ajax参数的几种方式

    参考网址:spring接收ajax参数的几种方法

    @ModelAttribute 注解

    使用@ModelAttribute这个方法可以直接将参数映射成pojo对象,我不加@ModelAttribute注解,直接接收pojo对象,同样能够接收到参数

    前端ajax请求

            <script type="text/javascript">
                $(function(){
                    $.ajax({
                        type:"post",
                        url:"http://localhost:8080/test",
                        data:{
                            "name":"张三",
                            "phone":"10086",
                            "password":"123456"
                        },
                        async:true,
                        success:function(data){
                            console.log(data);
                        }
                    });
                })
            </script>

    java接收参数

        @RequestMapping("/test")
        @ResponseBody
        public String testUser(@ModelAttribute("TUser") TUser user){
            System.out.println(user.getName());
            System.out.println(user.getPassword());
            System.out.println(user.getPhone());
            return "ok";
        }

    映射结果

    @PathVariabl 注解

    @PathVariable 是把请求的路径上的指定的分段点映射成指定的参数名称,@PathVariable可以指定多个,如果一个参数都不放在url路径中,直接请求访问。http://localhost:8080/test同样能够接收到参数

    前端ajax请求

            <script type="text/javascript">
                $(function(){
                    $.ajax({
                        type:"post",
                        url:"http://localhost:8080/test/10086",
                        data:{
                            "name":"张三",
                            "password":"123456"
                        },
                        async:true,
                        success:function(data){
                            console.log(data);
                        }
                    });
                })
            </script>

    java接收参数

        @RequestMapping("/test/{phone}")
        @ResponseBody
        public String testUser(String name,@PathVariable String phone,String password){
            System.out.println(name);
            System.out.println(phone);
            System.out.println(password);
            return "ok";
        }

    映射结果

    直接用HttpServletRequest获取

    前端代码等同于案例一

    java接收参数

        @RequestMapping("/test")
        @ResponseBody
        public String testUser(HttpServletRequest request, HttpServletResponse response){
            System.out.println(request.getParameter("name"));
            System.out.println(request.getParameter("phone"));
            System.out.println(request.getParameter("password"));
            return "ok";
        }

    映射结果完全相同于案例一

    @RequestParam绑定请求参数

    前端请求代码等同于案例一

    java接收参数

        @RequestMapping("/test")
        @ResponseBody
        public String testUser(@RequestParam("name") String a,@RequestParam("phone") String b, String password){
            /**
             * @RequestParam() 里边的值必须要和前端传递过来的参数名字相同
             */
            System.out.println(a);
            System.out.println(b);
            System.out.println(password);
            return "ok";
        }

    映射结果完全相同

    总结:

    1、如果前端传递过来的参数与后台接口定义的参数名相同,可以不需要任何注解,如果所有参数都在一个pojo对象中,那么可以直接映射成pojo对象,也可以使用  HttpServletRequest 接收参数

    2、如果想使用 resfull 风格的请求方式的话,可以使用 @PathVariable 进行注解

    3、如果前端传递的参数与后台接口定义的参数名称不相同,那么就使用 RequestParam 注解

  • 相关阅读:
    WINCE/WM5.0如何让安装完后自动运行程序
    Android 图片透明度处理代码
    windows mobile UI 自定义开始菜单图标
    Windows mobile 6捕获键盘操作
    HTTP的post和get总结
    提供一个Windows mobile Native UI 程序,循序渐进开发,并附有代码!
    Windows Mobile 中ComboBox【下拉列表】的使用
    注册表修改今日桌面左右软键的功能
    .net compact framework 注册表操作
    两种实现Toast 的例子(图片&文字)
  • 原文地址:https://www.cnblogs.com/yaowan/p/8979812.html
Copyright © 2011-2022 走看看