[英]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 中,將屬性重命名為name
和value
(因為您將收到類似[{"name": "a", "value": 1}, ...]
)。
之后它應該工作。 作為旁注,您可能不想在加載頁面后立即調用 AJAX。 在單擊提交按鈕或類似的東西時觸發它可能會更好,但這當然取決於您和您的用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.