private String getReverseRoute(RouteRedirectView viewResult, Route route) {
   try {
     return route.getReverseRoute(viewResult.getPathVariables());
   } catch (ReverseRouteException e) {
     throw new ViewResolutionException(
         e, "Failed to redirect to route '%s': %s", route.getRoute(), e.getMessage());
   }
 }
 @Override
 public void resolve(
     HttpServletRequest req, HttpServletResponse resp, RouteRedirectView viewResult) {
   String routeName = viewResult.getRoute();
   Route route = this.router.getNamedRoute(routeName);
   if (route == null) {
     throw new ViewResolutionException(
         "Cannot redirect to the route named '%s': no route with this name exists", routeName);
   }
   String reverseRoute = getReverseRoute(viewResult, route);
   String queryString = URLEncoder.encodeQueryString(viewResult.getQueryParameters());
   reverseRoute += queryString;
   try {
     resp.sendRedirect(reverseRoute);
   } catch (IOException e) {
     throw new ViewResolutionException(
         e, "Failed to redirect to route '%s' (%s): %s", routeName, reverseRoute, e.getMessage());
   }
 }