通过Bean对象将检查值列表传递给控制器​​?

时间:2018-11-15 07:30:37

标签: javascript jquery spring-mvc jquery-ui

试图将所选主题列表传递给Controller,但是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.
        });
      });

所有详细信息都将进入控制器类,但选中的主题列表复选框除外。

2 个答案:

答案 0 :(得分:1)

默认情况下,jQuery支持json格式提交

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

答案 1 :(得分:0)

  

感谢大家的努力。我发现自己可以解决   如下

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

                    });
  

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