T
- The type of object this renderer renderspublic abstract class RendererSupport<T> extends java.lang.Object implements Renderer<T>
Renderer
super class that provides a getType()
implementation based on the generic type of the impl.
Implementations need only to declare the type they render as the value for type variable T
and implement render(ratpack.handling.Context, Object)
.
import ratpack.handling.Context;
import ratpack.render.RendererSupport;
import ratpack.test.embed.EmbeddedApp;
import static org.junit.Assert.assertEquals;
public class Example {
// A type of thing to be rendered
static class Thing {
private final String name;
public Thing(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
// Renderer implementation
public static class ThingRenderer extends RendererSupport<Thing> {
public void render(Context context, Thing thing) {
context.render("Thing: " + thing.getName());
}
}
public static void main(String... args) throws Exception {
EmbeddedApp.fromHandlers(c -> c
.register(r -> r.add(new ThingRenderer()))
.all(ctx -> ctx.render(new Thing("foo")))
).test(httpClient -> {
assertEquals("Thing: foo", httpClient.getText());
});
}
}
An alternative to implementing a render is to make the type to be rendered implement Renderable
.
Modifier | Constructor and Description |
---|---|
protected |
RendererSupport() |
Modifier and Type | Method and Description |
---|---|
java.lang.Class<T> |
getType()
The type of object that this renderer can render (the type for
T ). |
abstract void |
render(Context ctx,
T t)
Render the given object to the response.
|
public java.lang.Class<T> getType()
T
).public abstract void render(Context ctx, T t) throws java.lang.Exception
Calling this method will finalize the processing, sending the response to the client.
Any errors that occur during rendering will be sent to Context.error(Throwable)
.