Spring MVC 控制器中如何返回JSON

  1. 搭建一个基于标注的 Spring MVC
  2. 设计一个控制器方法
    @RequestMapping("/请求路径")
    @ResponseBody
    返回值类型就是JSON转换前对应的类型 方法名(){
    return 类型对应的对象;
    }
    @ReponseBody 需要依赖于 JSON转换包

什么是rest

REST即表述性状态传递(英文:Representational State Transfer,简称REST)
它可以提高系统的可伸缩性 降低组件之间的耦合度 便于分布应用程序的设计和开发
具体做了两个方法的规范

  1. 对URL的风格做了规范
  2. 把原来基于操作的设计
  3. 转换成了基于资源的设计

对http协议的请求方式做了规范
get 查询 post 增加 put 更新 delete 删除

restful

符合rest 设计风格和规范的应用程序设计 叫restful

Spring MVC 对 rest的支持

  1. 建立基于标注的 Spring MVC

  2. 对控制器方法做设计
    @RequestMapping(value="/请求路径/{路径变量}",method=RequestMethod.请求方式枚举值)
    public 返回值类型 方法名(@PathVariable(“路径变量名”) 类型 变量{

    }
    如果要返回JSON 则加 @ResponseBody —- 依赖json转换包

  3. 由于rest风格的请求路径上 没有后缀 所有 DispatcherServlet 上 需要使用 /
    所有的静态资源 都将被拦截处理 所以要放行静态资源
    在spring 配置文件中 加 <mvc:default-servlet-handler />

基于rest的修改

  1. 先把 post 请求 改成 put 请求
  2. 前端
    需要把 post 请求改成 put
    需要加ajax的请求设置 contentType:”application/json”
    当有上面的设置时 要求参数必须以 json字符串进行传递 把json对象 转换成 json字符串
    eval('(' + jsonStr +')') JSON.parse(json字符串)
    JSON.stringify(json对象) 可以把json对象转换成json字符串
  3. 服务端
    把post 请求改成 put
    还需要对象类型的参数上 加 @RequestBody


11月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!