簡體   English   中英

使用 jQuery (ajax, json) 和 Spring MVC 發送多行表單數據

[英]Send multi-row form data using jQuery (ajax, json) and Spring MVC

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>

數據傳輸協議:

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

    //Getters and setters
    //...
}

Controller:

@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 controller,但這些代碼不起作用。 數據是重復的對象。

我該如何解決?

在您的 JSP 中,您想將以下行url:"testUrl",替換為 URL 到 controller 方法:例如url:"http://localhost:8080/testUrl"

然后,在您的TestForm model 中,將屬性重命名為namevalue (因為您將收到類似[{"name": "a", "value": 1}, ...] )。

之后它應該工作。 作為旁注,您可能不想在加載頁面后立即調用 AJAX。 在單擊提交按鈕或類似的東西時觸發它可能會更好,但這當然取決於您和您的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM