【问题标题】:Send multi-row form data using jQuery (ajax, json) and Spring MVC使用 jQuery (ajax, json) 和 Spring MVC 发送多行表单数据
【发布时间】:2020-03-26 07:08:28
【问题描述】:

JSP:

<script>
    var queryString = JSON.stringify($("#testForm").serializeArray());
    $.ajax({
        type:'post',
        url:"testUrl",
        data : queryString,
        dataType : 'json',
        contentType: 'application/json;charset=UTF-8',
        success: function(){
          //...
        },
        error: function(request,status,error) {
            alert(request.responseText);
        }
    });
<script>
<form id="testForm">
     <input type="text" name="a" value="1" />
     <input type="text" name="b" value="1" />
     <br />
     <input type="text" name="a" value="2" />
     <input type="text" name="b" value="2" />
</form>

DTO:

public class TestForm {
    private String a;
    private String b;

    //Getters and setters
    //...
}

控制器:

@Controller
public class Controller {
   @Autowired
   Service service;

   @RequestMapping("/testUrl")
   public @ResponseBody HashMap<String, Object> testUrl(@RequestBody List<TestForm> testForms) {
        HashMap<String, Object> chkVal = Service.testUrl(testForms);
        return chkVal;
   }
}

我想让 JSP 使用 JSON 将多行数据发送到 Spring 控制器,但是这些代码不起作用。数据是重复的对象。

我该如何解决?

【问题讨论】:

    标签: javascript java jquery ajax spring-mvc


    【解决方案1】:

    在您的 JSP 中,您希望将以下行 url:"testUrl", 替换为控制器方法的 URL:例如url:"http://localhost:8080/testUrl".

    然后,在您的 TestForm 模型中,将属性重命名为 namevalue(因为您将收到类似 [{"name": "a", "value": 1}, ...] 的内容。

    之后它应该可以工作了。附带说明一下,您可能不想在加载页面后立即调用 AJAX。在提交按钮单击或类似的情况下触发它可能会更好,但这当然取决于您和您的用例。

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多