我需要發送一個JSON字符串到Spring MVC控制器。但我沒有 有任何形式綁定到它,我只需要發送一個普通的JSON數據到Controller類。我是像下面的代碼一樣對Controller方法進行jQuery AJAX調用。 (請注意:它只是普通的JSON數據而不是表單提交)。但是,如何在Controller方法中檢索它(注意:它只是普通的JSON數據,而不是表單提交)。傳遞JSON數據到一個Spring MVC控制器
32
A
回答
42
添加以下依賴性
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.7</version>
</dependency>
修改請求如下
$.ajax({
url:urlName,
type:"POST",
contentType: "application/json; charset=utf-8",
data: jsonString, //Stringified Json Object
async: false, //Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation
cache: false, //This will force requested pages not to be cached by the browser
processData:false, //To avoid making query String instead of JSON
success: function(resposeJsonObject){
// Success Message Handler
}
});
控制器側
@RequestMapping(value = urlPattern , method = RequestMethod.POST)
public @ResponseBody Person save(@RequestBody Person jsonString) {
Person person=personService.savedata(jsonString);
return person;
}
@RequestBody
- 隱蔽JSON對象到Java
@ResponseBody
- Java對象轉換成JSON
4
的Html
$('#save').click(function(event) { var jenis = $('#jenis').val(); var model = $('#model').val(); var harga = $('#harga').val(); var json = { "jenis" : jenis, "model" : model, "harga": harga}; $.ajax({ url: 'phone/save', data: JSON.stringify(json), type: "POST", beforeSend: function(xhr) { xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-Type", "application/json"); }, success: function(data){ alert(data); } }); event.preventDefault(); });
控制器
@Controller @RequestMapping(value="/phone") public class phoneController { phoneDao pd=new phoneDao(); @RequestMapping(value="/save",method=RequestMethod.POST) public @ResponseBody int save(@RequestBody Smartphones phone) { return pd.save(phone); }
道
public Integer save(Smartphones i) { int id = 0; Session session=HibernateUtil.getSessionFactory().openSession(); Transaction trans=session.beginTransaction(); try { session.save(i); id=i.getId(); trans.commit(); } catch(HibernateException he){} return id; }
+0
.val()函數來自哪裏? – MNM
1
您可以用字符串化JSON.stringify(JSONObject的)的JSON對象,並接受它的控制器字符串。
在控制器中,您可以使用javax.json來轉換和操作它。
下載並將.jar添加到項目庫並導入JsonObject。
要創建一個JSON對象,你可以使用
JsonObjectBuilder job = Json.createObjectBuilder();
job.add("header1", foo1);
job.add("header2", foo2);
JsonObject json = job.build();
從字符串讀它,你可以使用
JsonReader jr = Json.createReader(new StringReader(jsonString));
JsonObject json = jsonReader.readObject();
jsonReader.close();
相關問題
- 1. 傳遞JSON數據從一個控制器到另一個控制器angularJS
- 2. 傳遞json到mvc控制器
- 3. 在MVC中將數據從視圖傳遞到控制器spring
- 4. 在Spring中將數據從jsp傳遞到控制器mvc
- 5. 從Spring MVC控制器到服務層來回傳遞數據
- 6. 如何將json對象從ajax傳遞到spring mvc控制器?
- 7. 傳遞json對象到使用Ajax的spring mvc控制器
- 8. 將JSON數據從一個控制器傳遞到其他angularjs
- 9. 從mvc控制器傳遞數據到角度控制器
- 10. 從控制器傳遞數據到另一個控制器
- 11. 從JavaScript MVC控制器傳遞數據
- 12. 在控制器之間傳遞數據的Spring MVC
- 13. 傳遞int數組到MVC控制器
- 14. Spring MVC將多個列表從控制器傳遞到jsp
- 15. 將JSON傳遞給MVC控制器?
- 16. 從Button傳遞參數到Java spring MVC控制器
- 17. 將參數從JSP傳遞到控制器 - Spring MVC
- 18. 在Spring MVC中將參數從JSP傳遞到控制器
- 19. JQuery發送JSON到Spring MVC控制器
- 20. Spring MVC - 如何將數據從過濾器傳遞到控制器
- 21. 如何將數據傳遞到瀏覽器從Spring MVC控制器的JavaScript
- 22. 將數據從一個控制器傳遞到另一個控制器
- 23. 如何將數據從一個控制器傳遞到另一個控制器
- 24. 無法使用AJAX將JSON數據傳遞給MVC控制器?
- 25. MVC +將值從一個控制器傳遞到另一個控制器
- 26. 在JSON數組傳遞到彈簧MVC控制器
- 27. API控制器將數據傳遞給mvc控制器
- 28. 從一個視圖控制器傳遞數據到另一個
- 29. 將JSON數據發送到Spring MVC控制器 - 錯誤415
- 30. MVC通JSON數據到控制器
請加上烏爾假設有關人士 –
人是正常的POJO類。這裏我們使用Person類型的數據。 –