我使用Spring MVC作为一个简单的JSON API,@ResponseBody基于以下方法.(我已经有一个直接生成JSON的服务层.)
@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
String json = matchService.getMatchJson(matchId);
if (json == null) {
// TODO: how to respond with e.g. 400 "bad request"?
}
return json;
}
Run Code Online (Sandbox Code Playgroud)
问题是,在给定的场景中,用HTTP 400错误响应的最简单,最干净的方法是什么?
我确实遇到过这样的方法:
return new ResponseEntity(HttpStatus.BAD_REQUEST);
Run Code Online (Sandbox Code Playgroud)
...但我不能在这里使用它,因为我的方法的返回类型是String,而不是ResponseEntity.
我真的不确定使用Spring 3.2 MVC是否可行.
我的控制器有一个声明如下的方法:
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody List<Foo> getAll(){
return service.getAll();
}
Run Code Online (Sandbox Code Playgroud)
问题:
@ResponseStatus(HttpStatus.OK)?HttpStatus.OK状态代码.我有一个try catch块来处理我的应用程序错误.我想要一种简单的方法来设置对状态代码403或禁止的响应,然后将用户重定向到登录页面或自定义错误页面.
设置状态代码和重定向后,我遇到了一些问题.任何人都有一个设置状态代码,然后重定向的例子?