直接緣由是:個人(maven)項目parent父工程pom.xml缺乏必要的三個jar包依賴座標。web
解決方法是:在web子模塊的pom.xml裏面添加springMVC使用JSON實現AJAX請求。ajax
<!--spring mvc-json依賴--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.9</version> </dependency>
<spring.version>5.0.15.RELEASE</spring.version>
jsp頁面的<script>標籤
//用jQuery實現AJAX請求提交數據到服務器端 //保存數據到服務器,成功時控制檯打印顯示信息 var selectListTest = new Array(); selectListTest[0] = "param1"; selectListTest[1] = "param2"; selectListTest[2] = "param3"; $.ajax({ type:"POST", url:"${pageContext.request.contextPath}/product/delete.do", contentType:"application/json",//jQuery的ajax提交數組使得springMVC使用必填參數 //接收用@requestBody data:JSON.stringify(selectListTest), //數組經過JSON.stringify格式化 success:function (data) { alert(data); } });
視圖層Controller類的Method
//刪除產品的某個分類經過產品編號 @RequestMapping("/delete.do") @ResponseBody public String deleteByNum(@RequestBody List<String> selectListTest)throws Exception{ System.out.println( "JSP頁面經過AJAX技術提交POST請求的路徑找到。" ); // productService.deleteByNum(product); System.out.println( selectListTest ); System.out.println( "JSP頁面經過AJAX技術提交字符串數組成功實現。" ); return"redirect:findAll.do"; }
總結一下,解決該問題需注意一下三點:
1. 使用jackson依賴jar包。spring
2. jQuery的 $.ajax() 裏面須要對JSP頁面裏的字符串數組提交以前格式化。json
var testList=['1','2','3']; $.ajax({ type: "post", url: "${pageContext.request.contextPath}/product/delete.do", contentType:"application/json", data:JSON.stringify(testList), success: function(obj){ alert(obj.description); }, error: function(obj){ alert("操做出錯"); return false; } });
3. Controller控制層AJAX請求的調用的方法需在參數前加 @RequestBody註解。數組
public void method(@RequestBody List<String> testList) {
return;
}
==================
end
參考資料:服務器
關於Ajax請求傳遞數組參數的解決辦法