【问题标题】:Spring ResponseEntity and forwardSpring ResponseEntity 和转发
【发布时间】:2017-03-26 19:56:20
【问题描述】:

我是一个 SpringBoot 应用程序有一个 REST 控制器,它可以处理多种情况,其中一种情况必须转发给另一个控制器。

@PutMapping(
        value = "/rest/endpoint",
        consumes = MediaType.APPLICATION_JSON_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<CustomObject> doPut(@RequestBody myDataToBeHandled) {

   if(caseAHolds(myDataToBeHandled){
      return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
   }
   else if(caseBHolds(myDataToBeHandled){
      return new ResponseEntity<>(null, HttpStatus.OK);
   }
   else if(caseCHolds(myDataToBeHandled){
     // Redirect here
   }

}

我已经看到 an example 了解如何为重定向执行此操作?

【问题讨论】:

    标签: spring forwarding


    【解决方案1】:

    您需要如下所示设置Location标头,以便将请求重定向到另一个URL,如下所示:

    @PutMapping(
            value = "/rest/endpoint",
            consumes = MediaType.APPLICATION_JSON_VALUE,
            produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public ResponseEntity<CustomObject> doPut(@RequestBody myDataToBeHandled) {
    
       if(caseAHolds(myDataToBeHandled){
          return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
       }
       else if(caseBHolds(myDataToBeHandled){
          return new ResponseEntity<>(null, HttpStatus.OK);
       }
       else if(caseCHolds(myDataToBeHandled){
         // Redirect here
         HttpHeaders headers = new HttpHeaders();
         headers.add("Location", "ADD_URL_HERE");
         return new ResponseEntity<CustomObject>(headers, HttpStatus. OK);
       }
    }
    

    【讨论】:

    猜你喜欢
    • 2017-04-15
    • 2020-07-01
    • 2020-05-23
    • 2018-02-07
    • 2022-01-04
    • 2022-01-19
    • 2020-11-21
    • 1970-01-01
    • 2018-11-19
    相关资源
    最近更新 更多