0

我有一个如下的可分页控制器。我使用了根据条件提供 HttpServletResponse 的过滤器。如果只有 HttpServletResponse 状态代码为 200,我想显示所有用户。否则我想显示自定义消息。

@GetMapping("/user/all")
 @JsonView(Views.UserDetailView.class)
public ResponseEntity<?> getAllUsers(Pageable pageable,HttpServletResponse response) {

    if (response.getStatus() == 200) 
        return ResponseEntity.ok(userRepository.findAll(pageable));
    else
        return new ResponseEntity<>(new JsonResponse("some error msg to show"),
                HttpStatus.NOT_ACCEPTABLE);
}

我的用户存储库示例

public interface UserRepository extends JpaRepository<User, String> {

}

JsonResponse Dto

public class JsonResponse {
    private String message;
    private HttpStatus httpStatus;
    //getter setter and constructor..
}

上述实现的问题是,如果过滤器给出的响应代码不是 200,那么来自控制器的响应将不会显示自定义错误消息。它只显示响应代码。过滤器可以产生各种错误代码,例如 402 和 406。如何显示自定义错误消息?

ps:所有其他控制器都可以正常工作,除了带有 Pageable 对象的控制器

4

0 回答 0