Spring MVC 控制器中如何返回JSON
- 搭建一个基于标注的 Spring MVC
- 设计一个控制器方法
@RequestMapping("/请求路径")
@ResponseBody
返回值类型就是JSON转换前对应的类型 方法名(){
return 类型对应的对象;
}@ReponseBody
需要依赖于 JSON转换包
什么是rest
REST
即表述性状态传递(英文:Representational State Transfer,简称REST)
它可以提高系统的可伸缩性 降低组件之间的耦合度 便于分布应用程序的设计和开发
具体做了两个方法的规范
- 对URL的风格做了规范
- 把原来基于操作的设计
- 转换成了基于资源的设计
对http协议的请求方式做了规范
get 查询 post 增加 put 更新 delete 删除
restful
符合rest 设计风格和规范的应用程序设计 叫restful
Spring MVC 对 rest的支持
建立基于标注的 Spring MVC
对控制器方法做设计
@RequestMapping(value="/请求路径/{路径变量}",method=RequestMethod.请求方式枚举值)
public 返回值类型 方法名(@PathVariable(“路径变量名”) 类型 变量{}
如果要返回JSON 则加 @ResponseBody —- 依赖json转换包由于rest风格的请求路径上 没有后缀 所有 DispatcherServlet 上 需要使用 /
所有的静态资源 都将被拦截处理 所以要放行静态资源
在spring 配置文件中 加 <mvc:default-servlet-handler />
基于rest的修改
- 先把 post 请求 改成 put 请求
- 前端
需要把 post 请求改成 put
需要加ajax的请求设置 contentType:”application/json”
当有上面的设置时 要求参数必须以 json字符串进行传递 把json对象 转换成 json字符串eval('(' + jsonStr +')')
JSON.parse(json字符串)JSON.stringify(json对象)
可以把json对象转换成json字符串 - 服务端
把post 请求改成 put
还需要对象类型的参数上 加@RequestBody
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!