1、使用 @Request/@ResponseBody 来支持
- 使用 @RequestBody 来自动获取 Ajax 上传的数据
- 使用 @ResponseBody,把要返回的对象自动拼成 JSON 的格式返回
需要加入 jackson 的包
jackson-core-2.1.2.jar、jackson-annotations-2.1.2.jar、jackson-databind-2.1.2.jar
2、使用 HttpEntity/ResponseEntity
使用 HttpEntity/ResponseEntity 不但能访问到报文体,还可以访问报文头(可以获取 Header 的数据)
@RequestMapping(value="/test")
public ResponseEntity<List<UserModel>> handleRequest(HttpEntity<String> req,UserModel um){
System.out.println("req headers="+req.getHeaders()+",reqBody="+req.getBody());
}
3、返回 XML 格式的字符串
要让 Spring Web MVC 支持 xml 格式,需要加入如下 jar 包:
jaxb-api-2.2.5.jar、jaxb-impl-2.2.5.jar
在要返回的对象头上使用如下注解,例如
@XmlRootElement(name="userModel")
public class UserModel{}
这表名返回的 xml 的根元素名称为 userModel,注意:由于 xml 是单根的,所以只能返回一个对象,而不能返回一个 list,如果要返回多条值,可以在这个对象中包含多个其他对象。
返回的结果同样用 @ResponseBody 注解即可,这个注解会根据请求的类型,自动决定是返回 json 还是 xml,当然默认是返回 json 格式的,如果要返回 xml 格式,那么请求的时候,要指定:
accept=application/xml
如果使用 Jquery 进行 ajax 请求:
$.ajax({
dataType:'xml'
})