diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc index 6fb85ed96f4..ed4ad5506c6 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc +++ b/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` | (default) -| +| `+{0}+` the resource | `TypeMismatchException` | (default) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/NoResourceFoundException.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/NoResourceFoundException.java index 593e33ef73f..12c00161e20 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/NoResourceFoundException.java +++ b/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; } + @Override + public Object[] getDetailMessageArguments() { + return new String[]{this.resourcePath}; + } } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/NoResourceFoundExceptionTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/NoResourceFoundExceptionTests.java index 56cf687c1fa..7d7950ad9a4 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/NoResourceFoundExceptionTests.java +++ b/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."); } + @Test + void messageArgumentsShouldContainResourcePath() { + var noResourceFoundException = new NoResourceFoundException(HttpMethod.GET, "/context/resource", "/resource"); + assertThat(noResourceFoundException.getDetailMessageArguments()).containsExactly("/resource"); + } }