sing Spring MVC we can send to the client data in JSON format, but what if the client sends POST request with data in JSON format? Here we will see how Spring MVC “auto” maps JSON data sent by client POST request into Java object.
Objectives:
- How client request “GET” data in json format?
- How client send “POST” data in json format using jQuery.ajax()?
- How Spring MVC Controller can map json into java object?
Environment:
- Eclipse
- Maven (optional)
- Browser (Firefox, Chrome or IE)
- Java Server (Jetty, Apache,…)
Libraries:
- Spring Framework
- Jackson
- jQuery
<dependencies> <dependency><!-- spring mvc --> <groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.0.5.RELEASE</version> </dependency> <dependency><!-- jackson --> <groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.4.2</version> </dependency> </dependencies>
( 1 ) Java Project
( 2 ) Java Code & XML Configuration
- RestController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package com.hmkcode.controllers;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.hmkcode.vo.Person;
@Controller @RequestMapping ( "/cont" )
public class RestController {
public RestController(){
System.out.println( "init RestController" );
}
//this method responses to GET request http://localhost/spring-mvc-json/rest/cont
// return Person object as json
@RequestMapping (method = RequestMethod.GET)
public @ResponseBody Person get(HttpServletResponse res) {
Person person = new Person();
person.setId( 1 );
person.setName( "hmk" );
return person;
}
//this method response to POST request http://localhost/spring-mvc-json/rest/cont/person
// receives json data sent by client --> map it to Person object
// return Person object as json
@RequestMapping (value= "person" , method = RequestMethod.POST)
public @ResponseBody Person post( @RequestBody final Person person) {
System.out.println(person.getId() + " " + person.getName());
return person;
}
} |
- Person.java
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.hmkcode.vo;
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
//getters and setters... } |
- rest-servlet.xml
1
2
3
4
5
6
|
< beans ...>
< context:component-scan base-package = "com.hmkcode.controllers" />
< mvc:annotation-driven />
</ beans >
|
- web.xml
1
2
3
4
5
6
7
8
9
10
|
....... < servlet >
< servlet-name >rest</ servlet-name >
< servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name >rest</ servlet-name >
< url-pattern >/rest/*</ url-pattern >
</ servlet-mapping >
|
- index.html –> $.ajax()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<html> ...... <script type= "text/javascript" >
$(document).ready( function (){
sendAjax();
}); function sendAjax() {
$.ajax({ url: "/spring-mvc-json/rest/cont/person" ,
type: 'POST' ,
dataType: 'json' ,
data: "{\"name\":\"hmkcode\",\"id\":2}" ,
contentType: 'application/json' ,
mimeType: 'application/json' ,
success: function (data) {
alert(data.id + " " + data.name);
},
error: function (data,status,er) {
alert( "error: " +data+ " status: " +status+ " er:" +er);
}
}); } </script> ...... </html> |
( 3 ) Run & Test
- Run Jetty “or your” server
- http://localhost:8080/spring-mvc-json/rest/cont
- Thsi url will call the first method RestController.get() return Person object in json format
- http://localhost:8080/spring-mvc-json/index.html
- This html page contains jQuery.ajax() function that will call the second method RestController.post() on the load of the paeg.
- $.ajax() will send json data data: “{\”name\”:\”hmkcode\”,\”id\”:2}”
- Controller will receive this json data mapp into java object using @RequestBody
- Controller will return data again to the client in json format too.
Soruce Code: @ github
相关推荐
spring mvc 常用开发框架 jar包 提高开发效率 降低开发难度
spring、 spring mvc、 mybatis 开发的java客户关系管理系统,前端采用easyui编写
总有4个包 jackson-core-asl-1.9.13.jar jackson-core-lgpl-1.9.13 jackson-mapper-asl-1.9.13 jackson-mapper-lgpl-1.9.13
spring,spring mvc,hibernate,ehcache Java后台框架
该项目在以前的基础上整合了json的使用
解决spring mvc中jason无限死循环的方案
spring4 mvc 配置json 所需要的依赖jar包很全
JSON-RPC-Java和Spring MVC集成深度集成。 @实现了Spring的多语言 @实现了Javascript的多语言 @对Spring MVC的无侵入 @JSON-RPC获得Spring的所有优势 @实现了一个多语言选择的demo @可以作为脚手架
用来解决SpringMVC+Ajax技术中前台报406的错误信息,实现后台json格式与前台一致
一个spring MVC的开发实例,对新手比较有用。
NULL 博文链接:https://avi2.iteye.com/blog/641377
Spring MVC 文件上传下载 后端 - Java.zip
最近在整spring mvc 返回json的配置,网上搜集整理了一下,觉得蛮有用的就共享出来,三个必备json包并附spring mvc 返回json的配置,此包有两个版本json包,一个2.6一个2.2
spring、 spring mvc、 hibernate、 ehcache Java后台框架
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-...本书是一本Spring MVC的教程,内容细致、讲解清晰,非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读
本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、...
spring mvc拦截器,过滤json数据中的null值,将null变成空字符串,内含截图,及jar包
基于 Java ssh整合 开源博客系统 spring mvc,hibernate,spring,maven 整合开发
1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 ...12.Spring MVC 实现 JSON 数据返回案例 13.Spring MVC 文件的上传与下载案例 14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例
Spring MVC所需jar包,包含java开发中 Spring MVC架构中最常用的jar包