首页 > 解决方案 > 如何在单个控制器方法中有条件地重定向或响应空响应?

问题描述

我有以下控制器:

@Controller
@RequestMapping(path = "/foo/bar")
public classMyController 

    @PostMapping(path = "/acction")
    @ResponseStatus(value = HttpStatus.OK)
    public String doAction(@RequestBody final MyDto request) {
        try {
            someService.resetPassword(request.getSomeData());
            return "Success";
        } catch (MyException e) {
            return String.format("redirect:google.com");
        }
    }

该行return "Success";看起来多余。有办法避免吗?

标签: javaspring-bootspring-mvcredirectcontroller

解决方案


将您的返回类型更改为 ResponseEntity 类并设置响应状态代码代替字符串“成功”。

@GetMapping("/hello")
ResponseEntity<String> hello() {
    return new ResponseEntity<>("Hello World!", HttpStatus.OK);
}

推荐阅读