Browse Source

Improve i18n-support for NoResourceFoundException.

Return the requested resource as ErrorResponse.getDetailMessageArguments,
making it usable with message customization and i18n.

See gh-35758

Signed-off-by: Samuel Gulliksson <samuel.gulliksson@gmail.com>
pull/36004/head
Samuel Gulliksson 1 month ago committed by rstoyanchev
parent
commit
e99791f289
  1. 2
      framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc
  2. 4
      spring-webmvc/src/main/java/org/springframework/web/servlet/resource/NoResourceFoundException.java
  3. 5
      spring-webmvc/src/test/java/org/springframework/web/servlet/resource/NoResourceFoundExceptionTests.java

2
framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc

@ -171,7 +171,7 @@ Message codes and arguments for each error are also resolved via `MessageSource`
| `NoResourceFoundException` | `NoResourceFoundException`
| (default) | (default)
| | `+{0}+` the resource
| `TypeMismatchException` | `TypeMismatchException`
| (default) | (default)

4
spring-webmvc/src/main/java/org/springframework/web/servlet/resource/NoResourceFoundException.java

@ -78,4 +78,8 @@ public class NoResourceFoundException extends ServletException implements ErrorR
return this.body; return this.body;
} }
@Override
public Object[] getDetailMessageArguments() {
return new String[]{this.resourcePath};
}
} }

5
spring-webmvc/src/test/java/org/springframework/web/servlet/resource/NoResourceFoundExceptionTests.java

@ -40,4 +40,9 @@ class NoResourceFoundExceptionTests {
assertThat(noResourceFoundException.getBody().getDetail()).isEqualTo("No static resource /resource."); assertThat(noResourceFoundException.getBody().getDetail()).isEqualTo("No static resource /resource.");
} }
@Test
void messageArgumentsShouldContainResourcePath() {
var noResourceFoundException = new NoResourceFoundException(HttpMethod.GET, "/context/resource", "/resource");
assertThat(noResourceFoundException.getDetailMessageArguments()).containsExactly("/resource");
}
} }

Loading…
Cancel
Save