Skip to content

Commit 7655329

Browse files
yfoelrstoyanchev
authored andcommitted
Set status code on DefaultRenderingBuilder for RedirectView
See gh-33498
1 parent 3d1bf28 commit 7655329

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

spring-webflux/src/main/java/org/springframework/web/reactive/result/view/DefaultRenderingBuilder.java

+3
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ private Model initModel() {
8585
@Override
8686
public DefaultRenderingBuilder status(HttpStatusCode status) {
8787
this.status = status;
88+
if (this.view instanceof RedirectView) {
89+
((RedirectView) this.view).setStatusCode(status);
90+
}
8891
return this;
8992
}
9093

spring-webflux/src/test/java/org/springframework/web/reactive/result/view/DefaultRenderingBuilderTests.java

+9
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,15 @@ void redirectWithPropagateQuery() {
126126
assertThat(((RedirectView) view).isPropagateQuery()).isTrue();
127127
}
128128

129+
@Test
130+
void redirectWithCustomStatus() {
131+
Rendering rendering = Rendering.redirectTo("foo").status(HttpStatus.MOVED_PERMANENTLY).build();
132+
133+
Object view = rendering.view();
134+
assertThat(view.getClass()).isEqualTo(RedirectView.class);
135+
assertThat(((RedirectView) view).statusCode()).isEqualTo(HttpStatus.MOVED_PERMANENTLY);
136+
}
137+
129138

130139
private static class Foo {}
131140

0 commit comments

Comments
 (0)