• spring mvc 前后端数据交互方式(整理)


    Form表单提交

    基本数据类型

    @requestMapping(method.do(请求路径名))

    Public void test(int count){}

     

    表单中的name值必须和controller的参数变量名保持一致。

    如果不一致可以使用@RequestParam()注解绑定请求参数

    如果页面传递的参数为“”或者null会报错,

     

    包装类型

     

     

     

    和基本类型使用方法相同。

    如果前台的传递的值为null或者“”则controller中对应的变量值为null

     

     

    自定义复合对象类型

     

     

     

     

     

     

    所需信息封装成一个自定义的对象,变量名需要和表单中的name名称相同,

     

    User对象中有ContactInfo属性,在表单代码中,需要使用“属性名(对象类型的属性).属性名”来命名inputname

     

     

    list绑定

     

    Controller方法中不能直接使用list参数。不能像下面这么写,会报错。Could not instantiate bean class [java.util.List]: Specified class is an interface

    使用list传递参数的时候,

     

    缺点:那么名称易错。当需要单独传递一个list的时候很麻烦

     

    set绑定

    Setlist一样需要绑定到对象上才能够传递。

    而且,在对象中必须要添加相应数量的模型对象。传多少个就要添加多少个user对象。

     

     

    接受数据方式:

     

    缺点;比list更麻烦。

    map绑定

    Map比较灵活,它也需要绑定在对象上,而不能直接写在Controller方法的参数中。

     

    绑定对象:

     

     

    接收数据:

     

     

    提醒

     

    添加Required=false 表示如果参数a为空或者null,不抛出异常。

     

    使用pojo方式接收参数,前台属性的name值,需要和javabean中的属性名一致。Model 用来向前天发送数据。

     

     

     

    多选框传值:

    如果前台有相同name值的数据传递则要使用数组来接收,相同名称的可能是有这样的数值但更多的是多选框,所以我们要使用数组来接收这样的值

     

    @RequestMapping(value="select.do")

    public Stringhello(String []username,Model model){

     

        System.out.println(username.length)

        Stringname1=username[0];

        Stringname2=username[1];

        model.addAttribute("helloworld", "hello"+name1+name2);

        return"welcome";

     

    }

     

    httpservletRequest获取前台传递的参数:

     

    @RequestMapping(value="/hello.do")

    publicString hello(HttpServletRequest request,Model model){

      String name=request.getParameter("name");

      System.out.println(name);

    model.addAttribute("helloworld","hello"+name);

    return"welcome";

    }

     

    向前台发送参数:

    传递对象:

     

    传递list集合:

     

     

    modelandview对象中添加数据:

     

     

    使用map。跟model方法类似。

     

     

     

     

    异步传参方法:

    前台发送:

      $.ajax({

               url:"selectinfo.do",

               type:"post",

               data:{name:"name1",age:2},

               dataType:"json",

               success:function(data){

                      arr=eval(data);

                      alert("长度"+arr.length);

                      alert(arr);

                      for(var i=0;i<arr.length;i++){

                        alert("内容"+arr[i].title);

                 }

                }

                });

     

    接收方式:

    使用request接收

     

    直接用变量参数接收

     

    javabean对象接收

     

     

     

     

     

     

     

  • 相关阅读:
    Centos8.2安装Mongodb4.4.2(社区版)
    Spirng 循环依赖报错:Requested bean is currently in creation: Is there an unresolvable circular reference?
    SpringBoot Test 多线程报错:dataSource already closed
    SpringCloud Stream整合RabbitMQ3.5.0
    SpringBoot2.2.5整合ElasticSearch7.9.2
    ElasticSearch7.9.2设置密码
    CentOS7安装Kibana7.9.2
    张家界国庆6天行
    安装tomcat时,SYSTEM进程(PID=4)占用80端口的几种情况及解决方法(window7系统)
    竞品分析的目的是什么?如何筛选竞品?竞品分析资料来源?
  • 原文地址:https://www.cnblogs.com/zhangkaikai/p/7280871.html
Copyright © 2020-2023  润新知