Browse Source

SPR-7060 - @ResponseStatus: The reason value is not used.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3222 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Arjen Poutsma 16 years ago
parent
commit
3b6c2c0012
  1. 10
      org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java
  2. 3
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java

10
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java

@ -814,9 +814,17 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator @@ -814,9 +814,17 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator
ResponseStatus responseStatusAnn = AnnotationUtils.findAnnotation(handlerMethod, ResponseStatus.class);
if (responseStatusAnn != null) {
HttpStatus responseStatus = responseStatusAnn.value();
String reason = responseStatusAnn.reason();
if (!StringUtils.hasText(reason)) {
webRequest.getResponse().setStatus(responseStatus.value());
}
else {
webRequest.getResponse().sendError(responseStatus.value(), reason);
}
// to be picked up by the RedirectView
webRequest.getRequest().setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, responseStatus);
webRequest.getResponse().setStatus(responseStatus.value());
responseArgumentUsed = true;
}

3
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java

@ -1307,6 +1307,7 @@ public class ServletAnnotationControllerTests { @@ -1307,6 +1307,7 @@ public class ServletAnnotationControllerTests {
servlet.service(request, response);
assertEquals("something", response.getContentAsString());
assertEquals(201, response.getStatus());
assertEquals("It's alive!", response.getErrorMessage());
}
@Test
@ -2382,7 +2383,7 @@ public class ServletAnnotationControllerTests { @@ -2382,7 +2383,7 @@ public class ServletAnnotationControllerTests {
public static class ResponseStatusController {
@RequestMapping("/something")
@ResponseStatus(HttpStatus.CREATED)
@ResponseStatus(value = HttpStatus.CREATED, reason = "It's alive!")
public void handle(Writer writer) throws IOException {
writer.write("something");
}

Loading…
Cancel
Save