在我的下面看到了Spring MVC控制器的下面的代码片段 项目POC及以下是其中一种方法。 在这种情况下,getEntityDetails将从数据库获取数据,将该数据转换为JSON对象并返回它。
@ResponseBody
@RequestMapping(value = "/com/dbTest/testData", method = RequestMethod.GET)
public ResponseEntity<String> getEntityDetails
(HttpSession session, @RequestParam(value="Id", required=false) String Id) throws Exception
{
String userId = (String) session.getAttribute("userId");
this.getEntity.getEntityData(userId);
return new ResponseEntity<String>(HttpStatus.OK);
}
此调用的映射通过Angular JS完成,如下所示:
return $http({
url: '/com/dbTest/testData',
method: 'GET',
headers: {
'accept': 'application/json, text/plain, */*'
}
});
我在这里很困惑,如何在渲染视图以及为什么不使用ModelAndView。
答案 0 :(得分:0)
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/ResponseEntity.html
使用另一个构造函数并传递this.getEntity.getEntityData(userId)的值;
ResponseEntity(T body,HttpStatus statusCode)
答案 1 :(得分:0)
ModelAndView
需要填充视图名称和模型(数据),但是在AJAX(异步调用)的情况下,我们不需要指定视图名称,并且获取响应数据对我们有利。因此,在这种情况下,ResponseEntity非常适合,可以根据配置文件中定义的映射器返回JSON/XML
视图,并且可以像在您的情况下一样轻松地在视图上呈现。
它还为我们提供了定义任意HTTP response headers的灵活性。
ResponseEntity(HttpStatus statusCode)
ResponseEntity(MultiValueMap<String,String> headers, HttpStatus statusCode)
ResponseEntity(T body, HttpStatus statusCode)
ResponseEntity(T body, MultiValueMap<String,String> headers,
HttpStatus statusCode)