I'm new to Drop Wizard, and would like to redirect from a server side view to another url in my app.
Does DropWizard wrap up this common task somehow?
e.g.
@GET
public View getView(@Context HttpServletRequest req)
{
View view = new View();
if (somethingBad)
{
// code here to redirect to another url, eg /bad_data
}
else
{
return view;
}
}
Here's a simple code example that actually does the redirect using a WebApplicationException. So you could put this in your view, or in your resource, and just throw it whenever.
URI uri2 = UriBuilder.fromUri(url).build();
Response response = Response.seeOther(uri2).build();
throw new WebApplicationException(response);
You can also just make your resource return either a view, or a redirect response:
@GET
public Object getView(@Context HttpServletRequest req)
{
if (somethingBad())
{
URI uri = UriBuilder.fromUri("/somewhere_else").build();
return Response.seeOther(uri).build();
}
return new View();
}
Dropwizard is using Jersey 1.x. In Jersey you can throw a WebApplicationException to redirect a user.
Also see the answer here: https://stackoverflow.com/a/599131/360594