From 4acd9ee69bb88a266dc078758c8f6a244804328b Mon Sep 17 00:00:00 2001 From: Mengqi Xu <2663479778@qq.com> Date: Thu, 9 Jan 2025 23:50:25 +0800 Subject: [PATCH] Polish HttpEntityMethodProcessor Signed-off-by: Mengqi Xu <2663479778@qq.com> See gh-34223 --- .../method/annotation/HttpEntityMethodProcessor.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java index fda6f3adbb..63ebc9f732 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java @@ -33,6 +33,8 @@ import org.springframework.core.ResolvableType; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ProblemDetail; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; @@ -239,9 +241,9 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro } if (httpEntity instanceof ResponseEntity responseEntity) { - int returnStatus = responseEntity.getStatusCode().value(); - outputMessage.getServletResponse().setStatus(returnStatus); - if (returnStatus == 200) { + HttpStatusCode httpStatusCode = responseEntity.getStatusCode(); + outputMessage.getServletResponse().setStatus(httpStatusCode.value()); + if (HttpStatus.OK.value() == httpStatusCode.value()) { HttpMethod method = inputMessage.getMethod(); if ((HttpMethod.GET.equals(method) || HttpMethod.HEAD.equals(method)) && isResourceNotModified(inputMessage, outputMessage)) { @@ -249,8 +251,8 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro return; } } - else if (returnStatus / 100 == 3) { - String location = outputHeaders.getFirst("location"); + else if (httpStatusCode.is3xxRedirection()) { + String location = outputHeaders.getFirst(HttpHeaders.LOCATION); if (location != null) { saveFlashAttributes(mavContainer, webRequest, location); }