【问题标题】:Pass the list of checked values to controller by Bean object?通过 Bean 对象将检查值列表传递给控制器​​?
【发布时间】:2018-11-15 07:30:36
【问题描述】:

试图将选定的主题列表传递给控制器​​,但 bean 没有接收到主题列表。

这是我正在尝试的代码:

$("#submitCreateStudent").click(function() {
      var selSubjectIds = new Array();
      $('#subjectsTableInCreateStudent').find('.jtable-data-row').each(function() {
        if (selSubjectIds.length < 1) {
          selSubjectIds.push($(this).attr('data-record-key') + '$');
        } else {
          selSubjectIds += $(this).attr('data-record-key') + '$';
        }
      });

      if (validateCreateStudentForm()) {

        var data = new FormData();
        data.append('firstName', $("#firstNameInCreateStudent").val());
        data.append('lastName', $("#lastNameInCreateStudent").val());
        data.append('address', $("#studentAddressInCreateStudent").val());
        data.append('collegeName', $("#studentCollegeNameInCreateStudent").val());
        data.append('phoneNumber', $("#phoneNumberInCreateStudent").val());
        data.append('email', $("#emailInCreateStudent").val());
        data.append('studentDepartment', $("#departmentInCreateStudent").val());
        data.append('studentBranch', $("#branchInCreateStudent").val());
        data.append('DateOfBirth', $("#dobInCreateStudent").val());
        data.append('DateOfReport', $("#dorInCreateStudent").val());
        data.append('loginUserName', $("#studentUserNameInCreateStudent").val());
        data.append('loginPassword', $("#passwordInCreateStudent").val());
        data.append('studentSubjects', selSubjectIds);

        //                        data.append('skipInitialTraining', skipInitialTraining);

        $("#maskingId").mask("Saving...");

        $.ajax({
          url: "AddStudent.do",
          data: data,
          //                           
          //Remaining code goes here.
        });
      });

除了选中复选框的主题列表之外,所有细节都将进入控制器类。

【问题讨论】:

  • 如何缩短使用$("form").on("submit")$(this).serialize()
  • 明白了。但这能解决问题吗?
  • 简化总是好的。控制台或应用程序日志中有任何错误吗?
  • 控制台中没有错误信息
  • 只需将jtable中的元素存储到数组中,并附加到数据字段中。

标签: javascript jquery spring-mvc jquery-ui


【解决方案1】:

jQuery默认支持json格式提交

data :{‘selSubjectIds’:selSubjectIds}$(this).serialize();

【讨论】:

  • 感谢您的回答。你能更具体一点,比如我应该把它放在哪里以及必须替换哪些行?
  • var data = { 'firstName':$("#firstNameInCreateStudent").val()), .........'studentSubjects': selSubjectIds } data :data
【解决方案2】:

感谢大家的努力。我找到了解决问题的方法 这个如下

var arr = "";
$('#subjectsTableInCreateStudent').find('.jtable-data-row').each(function() {
                        var record = $(this).data('record');
                        arr += record.subjectId + seperatorForGridCells;   

                    });

这里的 arr 变量通过与 一些分隔符“seperatorForGridCells”。然后我用 StringTokenizer 将每个 id 分开,并将每个 id 从字符串类型解析为 int。

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2016-04-08
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2019-11-15
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多