我需要发送一个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类型的数据。 –