Interface ServerResponse.BodyBuilder
- All Superinterfaces:
ServerResponse.HeadersBuilder<ServerResponse.BodyBuilder>
- Enclosing interface:
- ServerResponse
public static interface ServerResponse.BodyBuilder
extends ServerResponse.HeadersBuilder<ServerResponse.BodyBuilder>
Defines a builder that adds a body to the response.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.web.servlet.function.ServerResponse.HeadersBuilder
ServerResponse.HeadersBuilder.WriteFunction -
Method Summary
Modifier and TypeMethodDescriptionSet the body of the response to the givenObjectand return it.<T> ServerResponsebody(T body, org.springframework.core.ParameterizedTypeReference<T> bodyType) Set the body of the response to the givenObjectand return it.contentLength(long contentLength) Set the length of the body in bytes, as specified by theContent-Lengthheader.contentType(org.springframework.http.MediaType contentType) Set the media type of the body, as specified by theContent-Typeheader.Render the template with the givennameusing the givenmodelAttributes.Render the template with the givennameusing the givenmodel.stream(Consumer<ServerResponse.StreamBuilder> streamConsumer) Create a low-level streaming response; for SSE support, seeServerResponse.sse(Consumer).Methods inherited from interface org.springframework.web.servlet.function.ServerResponse.HeadersBuilder
allow, allow, build, build, cacheControl, cookie, cookies, eTag, header, headers, lastModified, lastModified, location, varyBy
-
Method Details
-
contentLength
Set the length of the body in bytes, as specified by theContent-Lengthheader.- Parameters:
contentLength- the content length- Returns:
- this builder
- See Also:
-
HttpHeaders.setContentLength(long)
-
contentType
Set the media type of the body, as specified by theContent-Typeheader.- Parameters:
contentType- the content type- Returns:
- this builder
- See Also:
-
HttpHeaders.setContentType(MediaType)
-
body
Set the body of the response to the givenObjectand return it.Asynchronous response bodies are supported by providing a
CompletionStageorPublisheras body (or any asynchronous producer of a single entity that can be adapted via theReactiveAdapterRegistry).- Parameters:
body- the body of the response- Returns:
- the built response
-
body
Set the body of the response to the givenObjectand return it. The parameterbodyTypeis used to capture the generic type.- Parameters:
body- the body of the responsebodyType- the type of the body, used to capture the generic type- Returns:
- the built response
-
render
Render the template with the givennameusing the givenmodelAttributes. The model attributes are mapped under a generated name.Note: Empty
Collectionsare not added to the model when using this method because we cannot correctly determine the true convention name.- Parameters:
name- the name of the template to be renderedmodelAttributes- the modelAttributes used to render the template- Returns:
- the built response
-
render
Render the template with the givennameusing the givenmodel.- Parameters:
name- the name of the template to be renderedmodel- the model used to render the template- Returns:
- the built response
-
stream
Create a low-level streaming response; for SSE support, seeServerResponse.sse(Consumer).The
ServerResponse.StreamBuilderprovided to thestreamConsumercan be used to write to the response in a streaming fashion. Note, the builder is responsible for flushing the buffered content to the network.For example:
public ServerResponse handleStream(ServerRequest request) { return ServerResponse.ok() .contentType(MediaType.APPLICATION_ND_JSON) .stream(stream -> { try { // Write and flush a first item stream.write(new Person("John", 51), MediaType.APPLICATION_JSON) .write(new byte[]{'\n'}) .flush(); // Write and complete with the last item stream.write(new Person("Jane", 42), MediaType.APPLICATION_JSON) .write(new byte[]{'\n'}) .complete(); } catch (IOException ex) { throw new UncheckedIOException(ex); } }); }- Parameters:
streamConsumer- consumer that will be provided with a stream builder- Returns:
- the server-side streaming response
- Since:
- 6.2
-