springmvc后台接前端的参数,数组,集合,复杂对象等

springmvc后台接前端的参数,数组,集合,复杂对象等

参考地址:https://blog.csdn.net/feicongcong/article/details/54705933

常用的几种方式如下:

(1)数组:

后台

@ResponseBody
    @RequestMapping(value = "/ajaxsortPriority")
    public ResultDo ajaxsortPriority(@RequestParam("ids[]") Long[] ids) {
        ResultDo resultDo=new ResultDo();
        int size=cmsBannerService.sortPriority(ids);
        if(size==ids.length){
            resultDo.setSuccess(true);
        }else{
            resultDo.setSuccess(false);
        }
        return resultDo;
    }

前端

var param=[];
                    $("#tb_order").find("td[name=‘id‘]").each(function(){
                        param.push($(this).text());
                    })
                    var ids={ids:param};
                    $.ajax({
                        cache: true,
                        type: "GET",
                        url: "/cmsBanner/ajaxsortPriority",
                        dataType:"json",
                        data:ids,
                        async: false,
                        success: function (data) {

(2)集合

后台

@RequestMapping(value = "/cfgRepayRemind", method = RequestMethod.POST)
    @ResponseBody
    public ResultDo<?> cfgRepayRemind(
            @RequestBody List<SysDictPojo> sysDictPojos  //@RequestBody 前台请求的数据格式必须为json

    ) {
        ResultDo<?> resultDo = ResultDo.build();
        try {
            icProjectRepayService.cfgRepayRemind(sysDictPojos);
        } catch (Exception e) {
            resultDo.setSuccess(false);
        }

        return resultDo;
    }
//pojo类public class SysDictPojo extends AbstractBasePojo {
    private Long          id;
    private String        key;
    private String        value;
    private String        description;

}

前端

function cfgRepayRemind(ele) {
            var url = $(ele).attr("value");
            var params = [];
            $("#repayRemindMobile").find("ul").each(function () {
                var id = $(this).find("input[name=‘id‘]").eq(0).val();
                var value = $(this).find("input[name=‘value‘]").eq(0).val();

                params.push({id: id, value: value});//id,value 为java bean里的属性,名字一致
            })

            $.ajax({
                cache: true,
                type: "POST",
                url: url,
                data: JSON.stringify(params),// 指定请求的数据格式为json,实际上传的是json字符串
                contentType: ‘application/json;charset=utf-8‘,//指定请求的数据格式为json,这样后台才能用@RequestBody 接受java bean
                dataType: "json",
                async: false,
                success: function (data) {
                    if (data.success) {
                        toastr.success("操作成功");
                        setTimeout(function () {
                            location.reload();
                        }, 1000)
                    }
                }
            });
        }

(3) 单参数

前端

$.ajax({
            type:"post",
        data:{total:‘100‘},
            dataType:‘json‘,

            url:"http://127.0.0.1:8089/icProject/test",
            success:function () {

            }
        })

后台

@RequestMapping(value = "/test", method = RequestMethod.POST)
    @ResponseBody
    public String test(@RequestParam("total") String total
    ) {
        return null;
    }

(3)传多个参数

前端

var tagIds = []
$.ajax({
                type: "POST",
                url: "/auth/childComment/createComment",
                data: {
                    id: $("#sourceId").val(),
                    courseId: $("#courseId").val(),
                    classId: $("#commentClassId").val(),
                    content: $("#updateContent").val(),
                    childId: $("#childId").val(),
                    classCatalogId: $("#classCatalogId").val(),
                    tagId: tagIds
                },

后台

@PostMapping("createComment")
   @PreAuthorize("hasAnyAuthority(‘merchant:childComment:index‘)")
    @ResponseBody
   public ResultDo createComment(
            @RequestParam(value = "childId") Long childId,
            @RequestParam(value = "courseId") Long courseId,
            @RequestParam(value = "classId") Long classId,
            @RequestParam(value = "classScheduleId") Long classScheduleId,
            @RequestParam(value = "content") String content,
            @RequestParam(value = "tagId[]", required = false) List<Long> tagIds
    ) {

(4)表单数据序列化传参,ajax提交

前端

var params = $("#sysUserFrm").serialize();
            var url = "/sysUser/settingSave"
            $.ajax({
                cache: true,
                type: "POST",
                url: url,
                data: params,
                dataType: "json",
                async: false,
                success: function (data) {}
            })

后台

@RequestMapping(value = "/settingSave", method = RequestMethod.POST)
    @ResponseBody
    public ResultDo<?> settingSave(SysUserPojo sysUserPojo) {}

这样sysUserPojo也能接收到Bean,其实这里的$("#sysUserFrm").serialize()  就相当于组装的  json对象 { }

使用时必须先组装json对象{username:"carter" }

我的习惯是用 @RequestBody接受带List对象的对象或者List对象,因为js中有个push方法用来组合得到 List 比较简单

不使用contentType: “application/json”则data可以是对象,使用contentType: “application/json”则data只能是json字符串

使用@RequestBody(实际上接受的是json的字符串)

function logined() {
                $.ajax({
                    type: "POST",
                    url: "/backend/logined",
                    data:JSON.stringify({userName:"cater",password:"123456"}) ,//转成字符串
                    contentType: "application/json;charset=utf-8",//不使用contentType: “application/json”则data可以是对象,使用contentType: “application/json”则data只能是json字符串
                    success: function (data) {}
                })
            }

原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/9357027.html

时间: 2024-10-29 00:52:20

springmvc后台接前端的参数,数组,集合,复杂对象等的相关文章

springmvc后台控制层获取参数的方法

在SpringMVC后台控制层获取参数的方式主要有两种, 一种是request.getParameter("name"), 另外一种是用注解@RequestParam直接获取.这里主要讲这个注解 一.基本使用,获取提交的参数 后端代码: Java代码   @RequestMapping("testRequestParam") public String filesUpload(@RequestParam String inputStr, HttpServletReq

利用配置文件实现后台和前端的参数统一修改。

很多情况需要后台操作前端的数据,例如管理员在后台设置参数,前台显示的参数会同步修改. 这里运用以下几个函数及变量. $_SERVER['DOCUMENT_ROOT'] file_put_contents strip_whitespace var_export $_SERVER['DOCUMENT_ROOT']是PHP预定义的几个变量之一.作用是:获取当前运行脚本所在的文档根目录.该根目录是由服务器配置文件中定义.例如apache配置文件httpd.conf中DocumentRoot配置项的值.

ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组

1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一步,先应该定义一个JSON对象或JSON数组.json对象是“var jsonObj={“name1”:“value1” , “name2”:“value2” , “name3”:“value3”,…};”的格式定义,而json数组则是以中括号"[ ]"包裹多个json对象的格式定义,如

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(&quot;name&quot;),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解

一.基本使用,获取提交的参数 后端代码: Java代码   @RequestMapping("testRequestParam") public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) { System.out.println(inputStr); int inputInt = Integer.valueOf(request.getParameter("inpu

SpringMVC的学习____4.前端,控制器参数名不一致以及对象传递的解决方法

代码如下: 1.SpringMVC的web.xml文件:(DispatcherServlet配置) <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLo

springmvc:请求参数绑定集合类型

一.请求参数绑定实体类 domain: 1 private String username; 2 private String password; 3 private Double money; 4 5 private User user; 1 <%--把数据封装到Account类中--%> 2 <form action="param/saveAccount" method="post"> 3 姓名:<input type="

Springmvc中 同步/异步请求参数的传递以及数据的返回

注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方式,以及将处理后的model 传向前台***** 1.前台传递数据的接受:传的属性名和javabean的属性相同 (1).使用基本类型,或引用类型进行接受: @RequestMapping(value="/select") PublicString  select(String name,int age,Model model){ // 这样这里的name,age 就是我们前台传递的参数,也是我们Ja

前端Js传递数组至服务器端

相关学习资料 Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 第2版 http://zh.wikipedia.org/wiki/IEEE_802.11 http://www.hackingexposedwireless.com/doku.php http://blog.csdn.net/gueter/article/details/4812726 http://my.oschina.net/u/994235/blog/220586#OSC_h2_6

数组集合转换

数组转集合 Arrays.asList() asList()返回的对象是一个Arrays内部类,没有实现集合的修改类 Arrays.asList()体现了适配器模式,只是转换的接口,其后台数据依然是数组 集合转数组 toArray(T[] array) 参数是类型和大小与集合相同的数组,无参时返回的是Object[] ,转为其他类型数组时报错