相关疑难解决方法(0)

如何在返回String的Spring MVC @ResponseBody方法中响应HTTP 400错误?

我使用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.

java spring spring-mvc http-error

366
推荐指数
8
解决办法
34万
查看次数

动态更改注释驱动的Spring MVC中的@ResponseStatus

我真的不确定使用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)

问题:

  1. 是什么意思@ResponseStatus(HttpStatus.OK)
  2. 它是否表示该方法将始终返回HttpStatus.OK状态代码.
  3. 如果从服务层抛出异常怎么办?
  4. 我可以在发生任何异常时更改响应状态吗?
  5. 如何根据同一方法中的条件处理多个响应状态?

spring-mvc spring-annotations

32
推荐指数
3
解决办法
5万
查看次数

手动设置响应状态代码

我有一个try catch块来处理我的应用程序错误.我想要一种简单的方法来设置对状态代码403或禁止的响应,然后将用户重定向到登录页面或自定义错误页面.

设置状态代码和重定向后,我遇到了一些问题.任何人都有一个设置状态代码,然后重定向的例子?

redirect http

2
推荐指数
1
解决办法
5323
查看次数