您的位置:首页 > 编程语言 > Java开发

【springBoot】springBoot返回json的一个问题

2016-09-22 14:12 561 查看
首先看下面的代码

@Controller
@RequestMapping("/users")
publicclassUserController{
@RequestMapping(method=RequestMethod.GET)
publicHttpResponsegetList(HttpServletRequestreq,HttpServletResponserep){
Stringid=req.getSession().getId();
returnnewHttpResponse(id);
}
}


在通过ajax访问的时候会出现

javax.servlet.ServletException:Circularviewpath[users]:woulddispatchbacktothecurrenthandlerURL[/users]again.CheckyourViewResolversetup!(Hint:Thismaybetheresultofanunspecifiedview,duetodefaultviewnamegeneration.)


这个异常,它的意思是没有指定视图结果,让你检查一下你的视图配置,在springmvc中我们是使用viewResolver,通过在controller中return的前缀来决定跳转到相应的视图

那么在springBoot怎么解决这个问题?

两个方案:

1、添加@ResponseBody


@Controller
@RequestMapping("/users")
publicclassUserController{
  @RequestMapping(method=RequestMethod.GET)
  @ResponseBody
  publicHttpResponsegetList(HttpServletRequestreq,HttpServletResponserep){
      Stringid=req.getSession().getId();
      returnnewHttpResponse(id);
    }
}



2、将@Controller换成@RestController//标记为:restful

@RestController
@RequestMapping("/users")
publicclassUserController{
@RequestMapping(method=RequestMethod.GET)
publicHttpResponsegetList(HttpServletRequestreq,HttpServletResponserep){
Stringid=req.getSession().getId();
returnnewHttpResponse(id);
}
}


Controller源码类

org.springframework.stereotype.Controller


RestController源码类

org.springframework.web.bind.annotation.RestController


两者区别在于



--------------------------------



ok
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: