罗马苏丹默罕默德 2020-11-27 22:43 采纳率: 100%
浏览 36
已采纳

关于一个Ajax传一个对象到后台的问题,帮帮带学人

form.on('submit(add)',
            function() {                                              //看看能不能构成单个学生成绩的工具类StuGradetool3
                var Scores = [];
                var Cnames = [];
                var Score2 = [];
                Score2 = [[${Coursename}]];
                for(var i =0;i<[[${Coursename.size()}]];i++){
                    Scores.push((parseFloat($('#C_id'+Score2[i]).val()))),   //拿到输入的成绩
                    Cnames.push(Score2[i]);
                }
                var stuGradetool3 = {
                    "S_id" : $('#S_id').val(),
                    "name" : $('#S_name').val(),
                    "cnames" : Cnames,
                    "scores" : Scores,
                }
                console.log(stuGradetool3);              //这个有截图
                $.ajax({
                    url : '/Grade-add-function',                      //发送异步请求
                    type : 'post',
                    //使用JSON格式
                    dataType : 'json',
                    data : stuGradetool3,
                    success :  function (data){
                        console.log(data);
                    }
                })
                layer.alert("增加成功", {
                        icon: 6
                    },
                    function() {
                        //关闭当前frame
                        xadmin.close();

                        // 可以对父窗口进行刷新
                        xadmin.father_reload();
                    });
                return false;
            });

下面放输入和console打印的截图

Controller代码

@RequestMapping("/Grade-add-function")
    @ResponseBody
    public boolean toAdd_Grade(StuGradetool3 grade){
        System.out.println("------------------------------------------------");

        System.out.println("fuck");
        int len = grade.getCnames().size();
        System.out.println(len);
       System.out.println(grade.getS_id()+"|"+grade.getName());
        for(int i =0;i<len;i++){
            System.out.println(grade.getCnames().get(i)+"|"+grade.getScores().get(i));
        }
        for(int i = 0;i<len;i++){
            gradeService.insert_Grade(grade.getS_id()
                    ,courseService.search_grade_id_byname(grade.getCnames().get(i))
                    ,grade.getScores().get(i));
        }
        return true;
    }

报错截图

如果要页面代码在下面

<form class="layui-form" th:action="@{/Grade-add-function}">
            <div class="layui-form-item">
                <label for="S_id" class="layui-form-label">
                    <span class="x-red">*</span>学号</label>
                <div class="layui-input-inline">
                    <input type="text" id="S_id" name="ssid" required="" lay-verify="student_id" autocomplete="off" class="layui-input"></div>
                <div class="layui-form-mid layui-word-aux">
                    <span class="x-red">*</span>学生学号</div></div>
            <div class="layui-form-item">
                <label for="S_name" class="layui-form-label">
                    <span class="x-red">*</span>学生姓名</label>
                <div class="layui-input-inline">
                    <input type="text" id="S_name" name="ssname" required="" lay-verify="nikename" autocomplete="off" class="layui-input"></div>
            </div>
            <div class="layui-form-item"  th:each="course:${Coursename}">
                <label for="S_id" class="layui-form-label" th:text="${course+':'}">
                    <span class="x-red">*</span></label>
                <div class="layui-input-inline">
                    <input type="text" th:id="${'C_id'+course}"  required="" lay-verify="" autocomplete="off" class="layui-input"></div>
            </div>
            <div class="layui-form-item">
                <label  class="layui-form-label"></label>
                <button class="layui-btn" lay-filter="add" lay-submit="">增加</button></div>
        </form>

错误信息

ERROR 20040 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NumberFormatException: For input string: ""] with root cause

java.lang.NumberFormatException: For input string: ""
  • 写回答

4条回答 默认 最新

  • weixin_43466240 2020-11-28 11:38
    关注

    把  List<Float> 改成  List<String>试试,在实际开发中,不建议使用float或double之类的类型传参,建议全用String,如果需要运算的,你再转成相关类型。因为在js前端你定一个变量,如果不指定具体类型,他会默认String类型。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码